1. 程式人生 > >為PostgreSQL配置work_mem

為PostgreSQL配置work_mem

目錄

環境

文件用途

詳細資訊

環境

系統平臺:N/A

版本:9.4,9.6,10.0

文件用途

  work_mem也許是Postgres中最令人困惑的引數。work_mem用於確定在某些操作期間可以使用多少記憶體。從表面上看,work_mem的設定似乎很簡單,畢竟,work_mem只需指定將資料寫入磁碟之前內部排序操作和雜湊表可用的記憶體量。然而,如果不去配置work_mem可能會帶來許多問題。但是,更令人不安的是,當您在資料庫中收到記憶體不足的錯誤並跳出調整work_mem時,只是因為它以不太直觀的方式進行了一次提示。

  本文旨在講解work_mem引數的配置。

詳細資訊

設定預設記憶體

  work_mem在Postgres中的預設值為4MB,這可能有點低。這意味著每個Postgres活動(每個連線,某些排序等)在開始溢位到磁碟之前只可能會消耗4MB。當Postgres開始將臨時檔案寫入磁碟時,顯然這樣會比記憶體慢得多。當啟用後log_temp_files後,您可以通過在PostgreSQL日誌中搜索temporary file來檢視是否溢位到了磁碟。如果你看到了temporary file,它往往意味著你需要增加work_mem。

  首先需要清楚,我們很難獲得work_mem比較完美的正確配置,但如果你正在嘗試尋找一個適合所有場景的答案,通常設定為64MB。

它不僅僅是用於“查詢”的記憶體管理

 詳細的優化方案請登入【瀚高技術支援平臺】檢視

https://support.highgo.com/#/index/docContent/2b9dc7ff05f30713