Loading... # 范围查询数据量过大导致索引失效 存在索引idx_fk_customer_id(customer_id),表中数据16000条。 ```sql EXPLAIN SELECT * FROM rental WHERE customer_id<102; # 使用索引 EXPLAIN SELECT * FROM rental WHERE customer_id<103; # 全表扫描 ``` 当范围查询时,如果符合条件的数据过多时,因为建立索引的字段虽然在索引树上有序,但是这一部分数据还要回源到聚簇索引中再次查询,并且得到的数据在磁盘上并不是连续的,这样会产生大量的随机IO,而随机IO是非常慢的,与其这样还不如全表扫描。全表扫描最起码是顺序IO。 # Semi join半连接 + explain列中filtered为什么有时候不准 + Extra列中Using index condition都是索引下推吗? 最后修改:2022 年 06 月 23 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请点个赞吧~