1、WHERE字句的查询条件里有不等于号(如:WHERE column!=...),MYSQL将无法使用索引;
2、WHERE字句的查询条件里使用了函数的列(如:WHERE DAY(column)=...),MYSQL将无法使用索引;
3、在JOIN操作中,主键和外键的数据类型不相同,MYSQL将无法使用索引;
4、WHERE子句的查询条件里使用了比较操作符LIKE前置通配符%(如:LIKE "%ABC"),MYSQL将无法使用索引;
如果必须要使用like可以再表中新加一列存要like的列的值的反序值。 如:列A值是abcdefg,反值列B值是gfedcba。SQL语句:B like REVERSE(”%abc“)。
5、在ORDER BY操作中,排序的列同时也在WHERE中时,MYSQL将无法使用索引;
6、如果某个数据列里包含着许多重复的值,就算为它建立了索引也不会有很好的效果;