mysql-不走索引的情况

1、where字句的查询条件里面有不等于号where column!=
2、where字句的查询条件里面使用了函数
3、在join操作中(需要从多个数据表提取数据时),MySQL只有在主键和外键的数据类型相同时才能使用索引,否则即使建立了索引也不会使用
4、likeregexp只有在搜索模板的第一个字符不是通配符的情况下才能使用索引,像like "%abc%like "%abc"不走索引
5、order by,MySQL只有在排序条件不是一个查询条件表达式的情况下才使用索引
6、某个数据列里包含着许多重复的值,例如性别:“男/女”
7、如果条件中有 or(并且其中有or的条件是不带索引的),即使其中有条件带索引也不会使用。

要想使用or,又想要索引生效,只能将or条件中的每个列都加上索引

8、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引
9、如果优化器认为使用全表扫描要比使用索引快,则不使用索引

你可能感兴趣的:(mysql-不走索引的情况)