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,
求大神指点!
问题解答
回答1:肯定是后者呀。
高性能mysql中就特别指出这种情况,这种情况属于重复索引。在进行更新操作的时候,还需要维护两个索引,性能开销增多了。
回答2:肯定多余了,并且是uuid做主键,也是个坑,这是开发自建的吧
回答3:不太好,能不用最好别用这种方式。
相关文章:
1. mysql - SQL添加记录的数据来源于同一个表2. linux - 为什么我在mysql的my.cnf下找不到bind-address?3. 网页爬虫 - python爬虫用BeautifulSoup爬取<s>元素并写入字典,但某些div下没有这一元素,导致自动写入下一条,如何解决?4. angular.js使用$resource服务把数据存入mongodb的问题。5. javascript - chart.js如何修改某个指定bar的颜色6. javascript - 图片请求失败怎么去掉左上角的小图标?7. MYSQL 运算的问题8. python3.x - python多进程,不能在同一窗口吗9. mysql中datetime列如何做筛选?10. 网页爬虫 - 关于Python的编码与解码问题

网公网安备