MYSQL 在主鍵上建立唯一索引
問題描述
剛到這個公司上班,查看他們的數(shù)據(jù)庫,發(fā)現(xiàn)他們竟然在主鍵上又建立了一次唯一索引,請問這個是怎么回事,是很高明的寫法呢,還是很垃圾的寫法,我感到很莫名其妙?
我看了,很多表都是這樣的情況
CREATE TABLE `tbl_nvhl_order` ( `UUID` varchar(32) NOT NULL COMMENT ’訂單號。’, `CHANNEL_ORDER_ID` varchar(50) DEFAULT ’’ COMMENT ’渠道訂單號’, ... `ISGROUP` varchar(10) DEFAULT NULL COMMENT ’團(tuán)單標(biāo)識’, PRIMARY KEY (`UUID`), UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE, KEY `index_name` (`CHANNEL_ORDER_ID`,`SOURCE`) USING BTREE, KEY `idx_creator` (`CREATOR`) USING BTREE, KEY `productcode` (`PRODUCTCODE`), KEY `index_app_id` (`APP_ID`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’’
其中
PRIMARY KEY (`UUID`),UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE,
求大神指點!
問題解答
回答1:肯定是后者呀。
高性能mysql中就特別指出這種情況,這種情況屬于重復(fù)索引。在進(jìn)行更新操作的時候,還需要維護(hù)兩個索引,性能開銷增多了。
回答2:肯定多余了,并且是uuid做主鍵,也是個坑,這是開發(fā)自建的吧
回答3:不太好,能不用最好別用這種方式。
相關(guān)文章:
1. docker - 各位電腦上有多少個容器啊?容器一多,自己都搞混了,咋辦呢?2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. mac里的docker如何命令行開啟呢?4. 關(guān)于docker下的nginx壓力測試5. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題6. nignx - docker內(nèi)nginx 80端口被占用7. docker容器呢SSH為什么連不通呢?8. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?9. docker start -a dockername 老是卡住,什么情況?10. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下

網(wǎng)公網(wǎng)安備