索引注意事项

索引注意事项

创建索引的原则

1.建在 选择性 高的字段上(不重复的索引值/表记录数)

选择性高:创建索引的时候对应的字段尽量保证次字段的不重复性,若果字段出现大量的重复数据,加索引的意义将缺失。

选中性高的索引效果好,价值大,效率更快。
2.组合索引中,选中性高的字段排在最前面,即作为引导列。
3.查询条件中包含两个选择性高的字段时,可以考虑创建两个索引(尤其在这两个条件查询根据 OR 连接时)
4.不要重复创建彼此有包含关系的索引,如index(a,b,c) index(a,b) index (a)
5.组合索引的字段不要过多,如果超过四个字段,一般考虑拆分成多个单列索引或者更为简单的组合索引
6.不要滥用索引,及时删除无用的索引。

滥用索引的危害
1.降低写入性能
在数据写入表中的时候,MySQL除了要把数据写到硬盘上,还需要更新索引。如果表中有大量索引,每次写入数据会引发多次索引更新,这会降低写入性能。

2.增加磁盘空间的使用
索引是存储在独立的数据结构中的,MySQL使用B+tree或哈希表来实现索引的存储。所以,加索引的同时,MySQL也要维护索引结构,从而占用更多的磁盘空间。

3.增加CPU的负担
MySQL执行查询语句的时候会利用索引来加速查询的效率,但是同时也增加了CPU的负担。MySQL要根据索引中的指针来定位记录,这需要进行很多次CPU计算,同时也会增加CPU的缓存失效率。

索引失效原因

1.查询的索引字段上使用了函数
2.索引字段的LIKE查询以%开头
3.索引字段存在隐式类型转换(where参数与字段之间或join连接的两个字段不一致)
4.查询条件未使用组合索引的引导列
5.where中索引列有运算
6.数据量少

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值