Ich bin gerade dieser Firma beigetreten und habe ihre Datenbank überprüft. Ich habe festgestellt, dass sie einen eindeutigen Index für den Primärschlüssel erstellt hat. Ist das eine sehr clevere Schreibweise oder eine sehr dumme Schreibweise? ?
Ich habe nachgeschaut und es ist bei vielen Uhren so
CREATE TABLE `tbl_nvhl_order` (
`UUID` varchar(32) NOT NULL COMMENT '订单号。',
`CHANNEL_ORDER_ID` varchar(50) DEFAULT '' COMMENT '渠道订单号',
...
`ISGROUP` varchar(10) DEFAULT NULL COMMENT '团单标识',
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=''
Unter ihnen
PRIMARY KEY (`UUID`),
UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE,
Bitte Gott um Führung!
肯定是后者呀。
高性能mysql中就特别指出这种情况,这种情况属于重复索引。在进行更新操作的时候,还需要维护两个索引,性能开销增多了。
肯定多余了,并且是uuid做主键,也是个坑,这是开发自建的吧
不太好,能不用最好别用这种方式。