1、使用like后面紧跟着%,如‘%XXX’
2、当全表扫描比走索引查询的快的时候,会使用全表扫描,而不走索引
3、字符串不加单引号索引会失效
4、where中索引列使用了函数(例如substring字符串截取函数)
5、where中索引列有运算(用了< or > 右边的索引会失效,用<= or >= 索引不会失效)
6、is null可以走索引,is not null无法使用索引(取决于某一列的具体情况)
7、复合索引没有用到左列字段(最左前缀法则,如果没用用到最左列索引,或中间跳过了某列有索引的列,索引会部分失效)
8、条件中有or,前面的列有索引,后面的列没有,索引会失效。想让索引生效,只能将or条件中的每个列都加上索引