较高 LIMIT 偏移量对 MySQL 查询速度的影响
当结合 ORDER BY 查询 LIMIT 偏移量不断增加的大型 MySQL 表时,用户可能会遇到查询速度明显下降的情况。当表超过 1600 万条记录或大小约为 2GB 时,这一点尤其明显。
例如,以下具有较小偏移量的查询的执行速度明显快于具有较大偏移量的查询:
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
虽然两个查询都只检索 30 行,但后者花费的时间要长得多,尽管 ORDER 的开销可以忽略不计BY.
要优化此场景,请考虑使用替代方法:
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
通过始终保持零偏移,即使在迭代中获取大量数据,查询也将始终以最佳速度执行。
以上是为什么具有大 LIMIT 偏移量的 MySQL 查询如此慢?的详细内容。更多信息请关注PHP中文网其他相关文章!