mysql 中 limit offset 过大导致查询缓慢的原因及解决方案
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 467
Author 回答者: shfshanyue
SELECT * FROM User LIMIT 1000000, 10
如上语句,跳过 1000000 行用户,取其后的 10 个用户。其中 offset 过大,将会进行 1000000 行扫描,导致磁盘 IO 多大,拖垮数据库
解决方案也很简单: 取出这10个用户的 ID,由于查询 ID 使用聚簇索引,避免 100000 行的磁盘 IO,再通过子查询找到这 10 个用户的所有数据