RDS 適用於 PostgreSQL 記憶體 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

RDS 適用於 PostgreSQL 記憶體

RDS for PostgreSQL 記憶體分為共用和本機。

RDS 適用於 Postgre 的 中的共用記憶體SQL

RDS for PostgreSQL 會在執行個體啟動時配置共用記憶體。共用記憶體分成多個子區域。接下來,您可以看到最重要子區域的描述。

共用緩衝區

共用緩衝集區是 RDS for PostgreSQL 記憶體區域,可存放應用程式連線正在使用或正在使用的所有頁面。分頁是記憶體形式的磁碟區塊。共用緩衝集區快取從磁碟讀取的資料區塊。集區可減少從磁碟重新讀取資料的次數,讓資料庫運作更有效率。

每個資料表和索引儲存為一連串固定大小的分頁。每個區塊包含多個元組,對應於資料列。元組可以存放在任何分頁中。

共用緩衝集區的記憶體有限。如果新請求需要不在記憶體中的頁面,且沒有更多記憶體,RDS則 PostgreSQL 會清除較不常用的頁面以容納請求。移出政策以時鐘掃描演算法實作。

shared_buffers 參數決定伺服器專用於快取資料的記憶體數量。

預先寫入日誌 (WAL) 緩衝區

預先寫入日誌 (WAL) 緩衝區會保留 RDS PostgreSQL 稍後寫入持久性儲存的交易資料。RDS 對於 PostgreSQL,使用 WAL機制可以執行下列動作:

  • 在故障後復原資料

  • 避免頻繁寫入磁碟以減少磁碟輸入/輸出

當用戶端變更資料時,RDSFor PostgreSQL 會將變更寫入WAL緩衝區。當用戶端發出 時COMMIT,WAL寫入器程序會將交易資料寫入WAL檔案。

wal_level 參數會決定寫入 的資訊量WAL。

RDS for Postgre 中的本機記憶體SQL

每個後端程序會配置本機記憶體來處理查詢。

工作記憶體區域

工作記憶體區域為執行排序和雜湊的查詢保留暫存資料。例如,含有 ORDER BY 子句的查詢執行排序。查詢在雜湊聯結和彙總中使用雜湊表。

work_mem 參數指定在寫入暫存磁碟檔案之前,供內部排序操作和雜湊表使用的記憶體數量。預設值為 4 MB。多個工作階段可以同時執行,每個工作階段可以平行執行維護操作。因此,使用的總工作記憶體可能是 work_mem 設定的倍數。

維護工作記憶體區域

維護工作記憶體區域快取維護操作的資料。這些操作包括清理、建立索引和新增外部索引鍵。

maintenance_work_mem 參數指定供維護操作使用的記憶體數量上限。預設值為 64 MB。一個資料庫工作階段一次只能執行一個維護操作。

暫時緩衝區域

暫時緩衝區域快取每個資料庫工作階段的暫存資料表。

每個工作階段視需要配置暫存緩衝區,以您指定的限制為上限。工作階段結束時,伺服器會清除緩衝區。

temp_buffers 參數設定每個工作階段使用的暫存緩衝區數目上限。在工作階段內第一次使用暫存資料表之前,您可以變更 temp_buffers 值。