Mysql中的冗余索引和重复索引

(1)重复索引:

指的是在对应列上,以相同的顺序不同的索引名称建立了多套一模一样的联合索引(单值索引也有,不过相对来说没那么奇葩做这种事),例如:
ALTER TABLE a ADD INDEX ‘idx_1’ (‘id’,’name’,’sex’)
ALTER TABLE a ADD INDEX ‘idx_2’ (‘id’,’name’,’sex’)
ALTER TABLE a ADD INDEX ‘idx_3’ (‘id’,’name’,’sex’)
这三个就是重复索引,占用三倍的索引磁盘存储空间,降低了SQL查询优化器判断选择的性能。非常不可取!

(2)冗余索引:

指的是不同的联合索引组合,某一列或者几列字段被多组索引覆盖,一般称这些列存在冗余索引,例如:
ALTER TABLE a ADD INDEX ‘idx_1’ (‘id’,’name’,’sex’)
ALTER TABLE a ADD INDEX ‘idx_2’ (‘id’,’name’,’phone’)
ALTER TABLE a ADD INDEX ‘idx_3’ (‘id’,’name’,’address’)
ALTER TABLE a ADD INDEX ‘idx_4’ (‘id’,’name’)
这种创建方式,套在id,name两个列上的索引会有4个,我们知道索引的前置匹配规则,id,name套了四层,树结构也会冗余四层,这是非常浪费空间的,同时在查询的时候,由于id和name有四种索引可以选择,SQL优化器的性能也会受影响,这种方式虽然很多时间没办法避免,但是可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值