Stan Blog

學習過程中的一些記錄

實作分頁 query 的正確姿勢

在實作分頁 query 時, 比較常見的思路是使用 SQL 的 LIMIT and OFFSET 取出一個區間的資料

SELECT * FROM table_name LIMIT 10 OFFSET 40;

但這種做法在資料量大時, 每次 request pagination 時

會對資料庫進行 Full Table Scan (insert、delete 可能同時發生)

把不必要的資料也一起搜尋出來, 造成效能問題

更好的做法是使用 primary key (通常是 id), 作為 where 條件來搜尋

SELECT * FROM table_name WHERE id > 10 LIMIT 20;

簡單紀錄一下

原文連結附在下面, 有興趣可以參考原文, 說明的很詳細


Ref:

Comments

comments powered by Disqus