MYSQL 在主鍵上建立唯一索引
問(wèn)題描述
剛到這個(gè)公司上班,查看他們的數(shù)據(jù)庫(kù),發(fā)現(xiàn)他們竟然在主鍵上又建立了一次唯一索引,請(qǐng)問(wèn)這個(gè)是怎么回事,是很高明的寫法呢,還是很垃圾的寫法,我感到很莫名其妙?
我看了,很多表都是這樣的情況
CREATE TABLE `tbl_nvhl_order` ( `UUID` varchar(32) NOT NULL COMMENT ’訂單號(hào)?!? `CHANNEL_ORDER_ID` varchar(50) DEFAULT ’’ COMMENT ’渠道訂單號(hào)’, ... `ISGROUP` varchar(10) DEFAULT NULL COMMENT ’團(tuán)單標(biāo)識(shí)’, 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,
求大神指點(diǎn)!
問(wèn)題解答
回答1:肯定是后者呀。
高性能mysql中就特別指出這種情況,這種情況屬于重復(fù)索引。在進(jìn)行更新操作的時(shí)候,還需要維護(hù)兩個(gè)索引,性能開銷增多了。
回答2:肯定多余了,并且是uuid做主鍵,也是個(gè)坑,這是開發(fā)自建的吧
回答3:不太好,能不用最好別用這種方式。
相關(guān)文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?2. mysql - 數(shù)據(jù)庫(kù)建字段,默認(rèn)值空和empty string有什么區(qū)別 1103. mysql - 這種分級(jí)一對(duì)多,且分級(jí)不平衡的模型該怎么設(shè)計(jì)表?4. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?5. mac OSX10.12.4 (16E195)下Mysql 5.7.18找不到配置文件my.cnf6. mysql mysql_real_escape_string() 轉(zhuǎn)義問(wèn)題7. 新人求教MySQL關(guān)于判斷后拼接條件進(jìn)行查詢的sql語(yǔ)句8. mysql - 千萬(wàn)數(shù)據(jù) 分頁(yè),當(dāng)偏移量 原來(lái)越大時(shí),怎么優(yōu)化速度9. MySQL FOREIGN KEY 約束報(bào)錯(cuò)10. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決
