openGauss 堆表支援預讀

奔跑的数据库發表於2024-03-30

堆表支援預讀

可獲得性

本特性自openGauss 6.0.0版本開始引入。

特性簡介

在對堆表進行掃描進行順序頁面讀取時,透過一次行讀入多個頁面,來減少因頻繁讀單頁的IO損耗,提升對堆表進行線性掃描的效能表現。

客戶價值

提升客戶在頻繁進行全表線性掃描場景下的效能表現。

特性描述

在對資料庫中的堆表進行線性掃描時,系統會將磁碟中的頁面逐一讀入記憶體。如果待掃描的堆表資料量巨大,頻繁地訪問磁碟會導致顯著的效能損耗。為了解決這一問題,引入了預讀功能。預讀是指在對磁碟檔案進行掃描時,作業系統不是逐個頁面地讀取,而是透過一次磁碟IO操作讀取多個頁面,這樣可以顯著減少因單頁訪問引起的頻繁IO損耗。在資料庫環境中,此功能同樣適用於對堆表的線性掃描,可以一次性將多個頁面讀入記憶體,從而降低磁碟IO的次數。在執行lazy vacuum對堆表進行清理時,利用預讀功能也可以加快掃描和清理過程。

使用者可以根據自己的執行環境和業務需求來決定是否啟用此功能,並適當調整引數大小。經驗表明,在處理超過10GB資料的堆表時,啟用預讀功能能夠有效提高線性掃描和lazy vacuum的效能。

特性增強

無。

特性約束

僅可用於非段頁式、行儲存引擎下的非壓縮表的堆表線性掃描操作。

依賴關係

無。

相關文章