极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。
每天晚上九点 B站讲解前端工程化直播,并解答相关问题。

# mysql 中 limit offset 过大导致查询缓慢的原因及解决方案

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 467 (opens new window)

SELECT * FROM User LIMIT 1000000, 10

如上语句,跳过 1000000 行用户,取其后的 10 个用户。其中 offset 过大,将会进行 1000000 行扫描,导致磁盘 IO 多大,拖垮数据库

解决方案也很简单: 取出这 10 个用户的 ID,由于查询 ID 使用聚簇索引,避免 100000 行的磁盘 IO,再通过子查询找到这 10 个用户的所有数据

更多链接: Mysql index configuration (opens new window)

Last Updated: 11/27/2021, 10:11:48 AM