MySQL 索引失效

Posted 陈彦斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 索引失效相关的知识,希望对你有一定的参考价值。

  1. 全列匹配
  2. 最佳左前缀法则
  3. 不在索引列上做任何操作(计算、函数、自动、手动类型转换),会导致索引失效
  4. 存储引擎不能使用索引中范围条件右边的列
  5. 尽量使用覆盖索引(只访问索引的查询(索引和查询列一致)),少用:select *
  6. mysql 再使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描
  7. is null,is not null也无法使用索引
  8. like 以通配符开头(like ‘%abc‘),mysql索引失效会变成全表扫描的操作
  9. 字符串不加单引号索引失效
  10. 少用or,用他连接时索引回失效

优化口诀

全列匹配我最爱,最左前缀要遵守;

带头大哥不能死,中间兄弟不能断;

索引列上少计算,范围之后全失效;

LIKE百分写最右,覆盖索引不写星;

不等空值还有or,索引失效要少用;

以上是关于MySQL 索引失效的主要内容,如果未能解决你的问题,请参考以下文章

mysql 避免索引失效

mysql 索引失效的原因都有哪些

#yyds干货盘点#MySQL索引优化系列:索引失效

Mysql 索引失效问题探究

MySQL索引优化系列:索引失效

MySQL高级篇——索引失效案例