数据库索引失效的情况

导致数据库索引失效的几种情况(个人整理):

  • 未能使用where条件子句
  • 使用了is null或者like可以使用索引,但是is not null和not like不能使用,会导致全表扫描
  • where子句中使用了函数
  • 在使用like进行模糊查询的时候使用了%在前的模糊匹配规则
  • where子句中使用了不等于操作
  • 比较不匹配数据类型,也就是在匹配的过程中进行了类型转换
  • where语句中有or条件且有某个或多个匹配条件没有使用索引
  • 复合索引在使用的过程中没有进行创建时第一个字段的匹配:假设A、B、C三个字段组成复合索引,但是在使用时只匹配了B、C,但没有对第一部分A字段进行匹配就会导致复合索引失效
  • 范围条件会导致where子句右边的索引失效所以开发时尽量将范围条件放到where语句中最后一句

PS:暂时只整理了这么多,后续有新的或者纠错会改动,如有不同见解请不吝赐教

猜你喜欢

转载自blog.csdn.net/weixin_42505381/article/details/128385383