Je viens de rejoindre cette entreprise et j'ai vérifié leur base de données. J'ai découvert qu'ils avaient créé un index unique sur la clé primaire. Que se passe-t-il ? Est-ce une façon d'écrire très intelligente ou une manière d'écrire très nulle ? ?
Je l'ai recherché et c'est comme ça sur de nombreuses montres
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=''
Parmi eux
PRIMARY KEY (`UUID`),
UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE,
Demandez à Dieu de vous guider !
C’est définitivement ce dernier.
Mysql hautes performances souligne spécifiquement cette situation, qui est un index en double. Lors de l'exécution d'une opération de mise à jour, deux index doivent être conservés, ce qui augmente la surcharge de performances.
C'est définitivement redondant, et utiliser uuid comme clé primaire est aussi un piège. C'est auto-développé, n'est-ce pas ?
Ce n’est pas très bon. Il est préférable de ne pas utiliser cette méthode si vous le pouvez.