實作分頁 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;
簡單紀錄一下
原文連結附在下面, 有興趣可以參考原文, 說明的很詳細