2017-07-15 79 views

回答

3

使用OFFSET進行分頁效率非常低,尤其是對於像Presto這樣的分析數據庫,通常需要執行全表或分區掃描。此外,查詢之間的結果不一定一致,因此在頁面之間導航時可能會出現重複或缺少結果。

OLTP數據庫(如MySQL或PostgreSQL)中,最好對索引使用範圍查詢,以便跟蹤上一頁中顯示的最後一個值。

在像Presto這樣的OLAP數據庫中,最好是緩存結果集並使用緩存數據執行分頁。每次用戶點擊轉到不同的頁面時,您不希望對數十億或數萬億行進行昂貴的查詢。

參見該問題的更詳細的解釋和指標的做法,這些文章: