Fork me on GitHub

七字口诀, mysql索引失效的情况

模型数空运最快

模:使用like进行模糊查询的时候,以百分号%开头的,索引就会失效。

型:代表数据类型,数据类型错误了,索引也会失效。

数:函数,对索引的字段使用内部函数的,索引也会失效。这种情况,应该建立基于函数的索引。

空:null,索引不存储空值,如果没有声明nou null,数据库会认为有可能存在空值,也不会按照索引进行计算。

运:运算,对索引列进行加减乘除等运算的,会造成索引失效。

最:复合索引中索引列的顺序非常重要,如果不是按照索引列最左列开始查找,则无法使用索引。

快:全表扫描最快,如果数据库认为全表扫描更快的时候,它就不会使用索引。

 

另外加一条

有or必全有索引:如果条件中有or,部分有索引的字段也不会用。如果想用or,又想用索引,那就要所有条件字段都加索引。

 

没必要使用索引的情况

1.唯一性差的字段不用。

2.频繁更新的字段不用。

3.where子句中没有的字段不用。

4.索引使用<>时,不用索引。

 

posted @ 2022-04-01 18:14  北斗2016  阅读(265)  评论(0编辑  收藏  举报