一、在进行范围查询索引失效的情况
在进行范围查询(比如>、< 、>=、<=、in、between and等条件)
索引失效是因为DBMS发现全表扫描比走索引效率更高,因此就放弃了走索引。
也就是说,当Mysql发现通过索引扫描的行记录数超过全表的10%-30%时,优化器可能会放弃走索引,自动变成全表扫描。某些场景下即便强制SQL语句走索引(图一),也同样会失效。
图一:
二、使用步骤
代码如下(示例):
=、<=使用索引的情况,使用索引扫描表记录行数比全表扫描少:如图
=、<=索引失效的情况;使用索引扫描表记录行数比全表扫描多:如图
所有评论(0)