索引失效的场景

  • 使用索引比全表扫描慢,则不使用索引;
  • 以%开头的LIKE查询不能利用B-Tree索引;
  • 数据类型出现隐式转换的时候也不会使用索引;
  • 在查询时,索引所在的列参与运算,也不会使用索引;
  • 复合索引的情况下,不满足最左原则Leftmost,不使用复合索引;
  • JOIN连表查询尽量避免使用IN、NOT IN 子查询,避免不走索引的情况;
  • 用OR连接的条件,OR前的条件有索引,OR后的条件没有索引,则不会使用索引;
  • 单表情况下,ISNULL() 、IN、NOT IN 所使用的列有索引,则使用索引,无则不使用;