mysql索引失效情况

1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原则。指的是查询要从索引的最左前列开始并且不跳过索引中的列。

2、不在索引列上做任何操作(计算,函数,(自动或者手动)类型装换),会导致索引失效而导致全表扫描

3、存储引擎不能使用索引中范围条件右边的列,范围之后索引失效。(< ,> between and)

4、mysql使用不等于(!= 或者<>)的时候,无法使用索引,会导致索引失效

5、mysql中使用is not null 或者 is null会导致无法使用索引

6、mysql中like查询是以%开头,索引会失效变成全表扫描,覆盖索引。

7、mysql中,字符串不加单引号索引会失效。

8、mysql中,如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)。要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引

 like KK%相当于=常量,%KK和%KK% 相当于范围

你可能感兴趣的:(mysql索引失效情况)