索引失效的几种情况

  1. 使用!=或者not查询的时候,由于索引数据的检索效率非常低,索引会失效
  2. 使用like通配符放在匹配字段前面的时候,不符合索引的最左匹配规则,索引会失效。放在右边可以。(并不是所有like查询都会失效,只有在查询时字段最左侧加%和左右侧都加%才会导致索引失效)
  3. 使用or连接查询的时候,如果or连接的是同一个字段(比如 name=“张三” or name=“李四”),那么索引不会失效。如果连接的不是同一个字段(比如name="张三"or age=“20”),索引会失效。
  4. 类型不一致,如果字段类型是字符串,where 时一定用引号括起来,否则会因为隐式类型转换,索引失效
  5. 运算符号导致的失效,如果在sql语句中对列(字段)进行了(+、-、*、/、!),那么都将不会走索引
  6. 联合索引,查询时的条件列不是联合索引中的第一个列,索引失效。(如果查询的字段在组合索引中不是最左侧的字段,那么该组合索引是不会生效的。即左前缀原则)
  7. 在索引列上使用 mysql 的内置函数,索引失效。
  8. 索引列使用is null 或者 is not null不一定失效
  9. 索引列使用>或者<不一定失效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值