一、在进行范围查询索引失效的情况

在进行范围查询(比如>、< 、>=、<=、in、between and等条件)
索引失效是因为DBMS发现全表扫描比走索引效率更高,因此就放弃了走索引。
也就是说,当Mysql发现通过索引扫描的行记录数超过全表的10%-30%时,优化器可能会放弃走索引,自动变成全表扫描。某些场景下即便强制SQL语句走索引(图一),也同样会失效。
图一:
在这里插入图片描述

二、使用步骤

代码如下(示例):

=、<=使用索引的情况,使用索引扫描表记录行数比全表扫描少:如图
在这里插入图片描述
=、<=索引失效的情况;使用索引扫描表记录行数比全表扫描多:如图
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐