MySQL索引法则和失效

1、遵循最左法则(联合索引),从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。

2、在联合索引当中出现范围查询(>,<),范围查询中右侧索引失效。规避方法:使用>=,<= 可以避免索引失效。

3、不要在索引列上进行运算操作(函数运算等等),否则索引将会失效。

4、字符串类型字段,如果查询不加引号,索引失效

5、模糊查询,%关键字%,如果尾部%不会失效,前面%索引失效。

6、or链接的使用,用or分割开的条件,如果or前的条件中的列有索引,而后面的列没有索引,那么涉及的索引都不会用到。 以下id有主键索引,phone为普通索引,age是联合索引。


image.png

6、如果表中的数据量比较小,MySQL 优化器可能会选择全表扫描而不是使用索引来执行查询。

7、前缀索引,具体如下图:


image.png

8、单列索引和联合索引的使用:


image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容