已经唯一索引了,为什么还要普通索引?

来源:4-3 设计品类和参数表

弱弱小乖乖

2020-10-19

DROP TABLE IF EXISTS `t_spec_group`;
CREATE TABLE `t_spec_group`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  `spg_id` int(10) UNSIGNED NOT NULL COMMENT '品类编号',
  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '品类名称',
  `is_delted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `unq_spg_id`(`spg_id`) USING BTREE,
  UNIQUE INDEX `unq_name`(`name`) USING BTREE,
  INDEX `idx_spg_id`(`spg_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '品类表' ROW_FORMAT = Dynamic;

spg_id 这个字段已经设置了唯一索引,为什么还要给他设置普通索引?

写回答

1回答

神思者

2020-10-19

这个问题以前回答过,这里就再讲一下。mysql数据库里面有Btree索引和哈希索引。我们加唯一性索引用的是btree索引,如果这个字段将来想要用哈希索引,我们不必修改唯一性索引,直接在普通索引改一下就可以了。

1
1
弱弱小乖乖
那后期要,直接添加不行么?添加和修改差别很大么?
2020-10-19
共1条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程