中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql對于unique_checks的支持

發布時間:2021-11-18 16:03:26 來源:億速云 閱讀:284 作者:iii 欄目:MySQL數據庫

這篇文章主要介紹“mysql對于unique_checks的支持”,在日常操作中,相信很多人在mysql對于unique_checks的支持問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”mysql對于unique_checks的支持”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!



unique_checks   這個參數是用于檢查主鍵和唯一鍵是否重復的參數.
tokudb與innodb對于這個參數有很大區別.
開啟(unique_checks=1 or on)時沒什么區別..都是要需要檢查唯一性.
關閉(unique_checks=0 or off)時,就有區別了
在unique_checks關閉狀態,不管什么引擎,有兩個情況下,性能提升還是客觀的:
1.只有primary key且是auto-increment的和secondary index ,沒有unique index,這個時候關閉unique_checks,批量插入的性能還是有很樂觀的提升的.
2.primary key有大量隨機數據(就是離散值很大),或者unique index有大量隨機數據(離散值很大),批量插入的性能也會有很高的提升;


接下來說說innodb與tokudb的區別:
innodb:off只是關閉secondary indexs.其實這句話有點多余.只要不是unique index,檢不檢查其實效果差別不大.官方宣稱,關閉unique_checks可以提升批量insert性能.secondary indexs.仔細研究了下.在批量插入時,不管secondary index如何進行組織或更新(插入數據后,索引也會更新或者可能重新組織),primary key和unique index都需要更新或重新組織.所以在innodb下,這個參數的性能提升意義不是很大.




tokudb:off狀態就不一樣了.在off狀態下,只檢查primary key是否重復.目前tokudb的索引還在研究階段,所以就只參考官方手冊的說法:在off狀態下,將提升批量insert的效率(前提是不僅有primary,還得有其他索引,不然,效果就不明顯了).
在關閉unique_checks狀態下,除了primary不能重復外,unique index和其他索引是可以重復的.這算是超級bug了.都允許重復了,還unique?而且在primary相同,unique不一樣的兩條insert,后面一條會覆蓋前面一條的數據,這個就太坑了...如下例:
mysql> show create table t3\G
*************************** 1. row ***************************
       Table: t3
Create Table: CREATE TABLE `t3` (
  `id` int(11) NOT NULL,
  `id2` int(11) DEFAULT NULL,
  `d3` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `d3` (`d3`),
  KEY `sec_key` (`id2`)
) ENGINE=TokuDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)


mysql> 
mysql> 
mysql> select * from t3;
+----+------+------+
| id | id2  | d3   |
+----+------+------+
|  1 | NULL | NULL |
|  2 |    2 | NULL |
|  3 |    3 |    3 |
|  4 |    4 |    3 |
+----+------+------+
4 rows in set (0.00 sec)


mysql> 
mysql> 
mysql> insert into t3 values (2,1,1); 
Query OK, 1 row affected (0.14 sec)


mysql> select * from t3;
+----+------+------+
| id | id2  | d3   |
+----+------+------+
|  1 | NULL | NULL |
|  2 |    1 |    1 |
|  3 |    3 |    3 |
|  4 |    4 |    3 |
+----+------+------+
4 rows in set (0.00 sec)


有此可知,關閉unique_checks也是存在隱患的.如果大量primary重復,前面的數據都會被覆蓋(只保留最后一個重復的數據),且secondary index很容易會遭到破壞,這個時候可能就需要重建索引,由此的代價,反而性能損失更大.











到此,關于“mysql對于unique_checks的支持”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武山县| 扎囊县| 邹平县| 莆田市| 荣成市| 洛宁县| 宣化县| 留坝县| 洪江市| 龙游县| 绥德县| 都江堰市| 金华市| 道真| 太康县| 霍城县| 榆树市| 五莲县| 四会市| 河间市| 卫辉市| 县级市| 滨州市| 府谷县| 武强县| 通化市| 扎兰屯市| 盐池县| 革吉县| 祥云县| 萨嘎县| 嘉鱼县| 安平县| 两当县| 佛冈县| 南乐县| 临江市| 咸阳市| 上高县| 旅游| 潼南县|