扫码关注微信公众号

回复“面试手册”,获取本站PDF版

回复“简历”,获取高质量简历模板

回复“加群”,加入程序员交流群

回复“电子书”,获取程序员类电子书

当前位置: 计算机基础 > MySQL高频面试题 > 20.索引在什么情况下会失效?

在上面介绍了几种不符合最左匹配原则的情况会导致索引失效,除此之外,以下这几种情况也会导致索引失效。

  • 条件中有or,例如select * from table_name where a = 1 or b = 3
  • 在索引上进行计算会导致索引失效,例如select * from table_name where a + 1 = 2
  • 在索引的类型上进行数据类型的隐形转换,会导致索引失效,例如字符串一定要加引号,假设 select * from table_name where a = '1'会使用到索引,如果写成select * from table_name where a = 1则会导致索引失效。
  • 在索引中使用函数会导致索引失效,例如select * from table_name where abs(a) = 1
  • 在使用like查询时以%开头会导致索引失效
  • 索引上使用!、=、<>进行判断时会导致索引失效,例如select * from table_name where a != 1
  • 索引字段上使用 is null/is not null判断时会导致索引失效,例如select * from table_name where a is null

点击面试手册,获取本站面试手册PDF完整版