搜尋

首頁  >  問答  >  主體

MYSQL 在主鍵上建立唯一索引

剛到這家公司上班,查看他們的資料庫,發現他們竟然在主鍵上又建立了一次唯一索引,請問這個是怎麼回事,是很高明的寫法呢,還是很垃圾的寫法,我感到很莫名其妙?

我看了,很多表都是這樣的狀況

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=''

其中

PRIMARY KEY (`UUID`),
UNIQUE KEY `PK_TBL_NVHL_ORDER` (`UUID`) USING BTREE,

求大神指點!

学习ing学习ing2735 天前1129

全部回覆(3)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-30 09:57:11

    一定是後者呀。

    高性能mysql中就特別指出這種情況,這種情況屬於重複索引。在進行更新操作的時候,還需要維護兩個索引,效能開銷增多了。

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-30 09:57:11

    肯定多餘了,而且是uuid做主鍵,也是個坑,這是開發自建的吧

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-30 09:57:11

    不太好,能不用最好別用這種方式。

    回覆
    0
  • 取消回覆