Mysql 索引的使用 如何避免索引失效
文章目录
1, 全值匹配
对索引中所有列都指定具体值,这时,索引生效,执行效率高
2,最左前缀法则
如果建立了复合索引,要遵守最左前缀法则。指的是查询要从索引的最左前列开始,索引的列可以不全用,但是不能跳过索引中的列
下面是示例
可以看见三种情况下,索引都生效
但是,如果没有第一列的name字段,是不会使用索引的
注意:这里的最左前缀,指的是查询条件是否包含,而与where后的字段顺序无关,下面这张图作为验证
如果where后的条件包含的字段不是连续的,则使用复合索引中连续的从左边开始的部分索引
如下图,索引是(name,status,address),跳过了status字段,包含address,但explain分析后,查询时只使用了name索引