首頁 > 資料庫 > mysql教程 > 鍵集分頁如何最佳化大偏移量的 PostgreSQL 查詢?

鍵集分頁如何最佳化大偏移量的 PostgreSQL 查詢?

Barbara Streisand
發布: 2025-01-13 19:21:44
原創
555 人瀏覽過

How Can Keyset Pagination Optimize PostgreSQL Queries with Large Offsets?

提升海量表上的 PostgreSQL 分頁表現

使用 OFFSET 從大型 PostgreSQL 表(數百萬行)檢索分頁資料會嚴重影響查詢速度。本文提出了一種卓越的最佳化策略:鍵集分頁。

鍵集分頁:更有效的方法

鍵集分頁透過利用上一頁中最後一行的值來避免 OFFSET 的效能缺陷。 這是查詢:

<code class="language-sql">SELECT *
FROM   big_table
WHERE  (vote, id) > (vote_x, id_x)
ORDER  BY vote, id
LIMIT  n;</code>
登入後複製

vote_xid_x 代表上一頁最後一行的 voteid。 這允許資料庫有效地跳過行,與 OFFSET.

相比顯著提高了效能

索引增強

為了獲得最佳效能,請在 WHERE 子句中使用的欄位上建立索引:

<code class="language-sql">CREATE INDEX vote_order_asc ON big_table (vote, id);</code>
登入後複製

重要提示:

  • (vote, id) 組合必須是唯一的,以確保結果一致。
  • ORDER BY 子句的方向必須與索引的方向相符。
  • 此方法不適合具有混合或衝突的ORDER BY方向的查詢。

進一步閱讀:

以上是鍵集分頁如何最佳化大偏移量的 PostgreSQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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