Saya baru sahaja menyertai syarikat ini dan menyemak pangkalan data mereka. Saya mendapati bahawa mereka telah mencipta indeks yang unik pada kunci utama ?
Saya melihatnya dan ia seperti ini pada banyak jam tangan
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=''
Antaranya
PRIMARY KEY (`UUID`),
UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE,
Minta petunjuk kepada Tuhan!
Ini pasti yang terakhir.
mysql berprestasi tinggi secara khusus menunjukkan keadaan ini, yang merupakan indeks pendua. Apabila melakukan operasi kemas kini, dua indeks perlu dikekalkan, yang meningkatkan overhed prestasi.
Ia pasti berlebihan, dan menggunakan uuid sebagai kunci utama juga merupakan perangkap Ini dibangunkan sendiri, bukan?
Sebaik-baiknya jangan gunakan kaedah ini jika boleh.