首頁 > 資料庫 > mysql教程 > 為什麼具有大 LIMIT 偏移量的 MySQL 查詢如此緩慢?

為什麼具有大 LIMIT 偏移量的 MySQL 查詢如此緩慢?

Linda Hamilton
發布: 2024-12-13 01:17:09
原創
557 人瀏覽過

Why Are MySQL Queries with Large LIMIT Offsets So Slow?

較高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.

要最佳化此場景,請考慮使用替代方法:

  1. 儲存所提取的一組行的最後一個ID(例如,lastId = 530 )。
  2. 修改查詢以包含條件WHERE id > lastId.
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
登入後複製

透過始終保持零偏移,即使在迭代中獲取大量數據,查詢也將始終以最佳速度執行。

以上是為什麼具有大 LIMIT 偏移量的 MySQL 查詢如此緩慢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板