這些設定控制自動清理功能的行為。請參考第 24.1.6 節取得更多資訊。請注意,許多設定可以在每個表格的基礎上被覆寫;請參考儲存參數。
autovacuum
(boolean
) #控制伺服器是否應該執行自動清理啟動常駐程式。預設為開啟;然而,track_counts也必須啟用,自動清理才能運作。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;然而,可以透過變更表格儲存參數來為個別表格停用自動清理。
請注意,即使停用了這個參數,系統仍然會在必要時啟動自動清理程序,以防止交易 ID 迴繞。請參考第 24.1.5 節取得更多資訊。
autovacuum_max_workers
(integer
) #指定在任何時間點可以執行的自動清理程序(自動清理啟動程式除外)的最大數量。預設值為三。這個參數只能在伺服器啟動時設定。
autovacuum_naptime
(integer
) #指定在任何給定資料庫上執行自動清理之間的最小延遲時間。在每一輪中,常駐程式會檢查資料庫,並在必要時對該資料庫中的表格發出VACUUM
和ANALYZE
命令。如果指定此值時沒有單位,則以秒為單位。預設值為一分鐘(1min
)。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定。
autovacuum_vacuum_threshold
(integer
) #指定在任何一個表格中觸發VACUUM
所需的最小更新或刪除元組數量。預設值為 50 個元組。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
autovacuum_vacuum_insert_threshold
(integer
) #指定在任何一個表格中觸發VACUUM
所需的最小插入元組數量。預設值為 1000 個元組。如果指定 -1,則自動清理不會根據插入的數量在任何表格上觸發VACUUM
作業。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
autovacuum_analyze_threshold
(integer
) #指定在任何一個表格中觸發ANALYZE
所需的最小插入、更新或刪除元組數量。預設值為 50 個元組。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
autovacuum_vacuum_scale_factor
(floating point
) #指定要加到autovacuum_vacuum_threshold
的表格大小比例,以決定是否觸發VACUUM
。預設值為 0.2(表格大小的 20%)。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
autovacuum_vacuum_insert_scale_factor
(floating point
) #指定要加到autovacuum_vacuum_insert_threshold
的表格大小比例,以決定是否觸發VACUUM
。預設值為 0.2(表格大小的 20%)。這個參數只能在postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
autovacuum_analyze_scale_factor
(floating point
) #指定一個表大小的比例,加到 autovacuum_analyze_threshold
,以決定是否觸發 ANALYZE
。預設值為 0.1(表大小的 10%)。這個參數只能在 postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。
autovacuum_freeze_max_age
(integer
) #指定一個表的 pg_class
.relfrozenxid
欄位可以達到的最大年齡(以交易次數計),在此之前將強制執行 VACUUM
操作,以防止表內交易 ID 迴繞。請注意,即使在停用自動清理的情況下,系統也會啟動自動清理程序以防止迴繞。
清理也允許從 pg_xact
子目錄中移除舊檔案,這就是為什麼預設值為相對較低的 2 億次交易的原因。這個參數只能在伺服器啟動時設定,但可以透過變更表儲存參數來降低個別表的設定。有關更多資訊,請參閱第 24.1.5 節。
autovacuum_multixact_freeze_max_age
(integer
) #指定一個表的 pg_class
.relminmxid
欄位可以達到的最大年齡(以多重交易計),在此之前將強制執行 VACUUM
操作,以防止表內多重交易 ID 迴繞。請注意,即使在停用自動清理的情況下,系統也會啟動自動清理程序以防止迴繞。
清理多重交易也允許從 pg_multixact/members
和 pg_multixact/offsets
子目錄中移除舊檔案,這就是為什麼預設值為相對較低的 4 億次多重交易的原因。這個參數只能在伺服器啟動時設定,但可以透過變更表儲存參數來降低個別表的設定。有關更多資訊,請參閱第 24.1.5.1 節。
autovacuum_vacuum_cost_delay
(floating point
) #指定將在自動 VACUUM
操作中使用的成本延遲值。如果指定 -1,將使用常規的 vacuum_cost_delay 值。如果未指定單位,則此值將視為毫秒。預設值為 2 毫秒。這個參數只能在 postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。
autovacuum_vacuum_cost_limit
(integer
) #指定將在自動 VACUUM
操作中使用的成本限制值。如果指定 -1(預設值),將使用常規的 vacuum_cost_limit 值。請注意,如果有多個自動清理工作程序正在執行,則該值會按比例分配給這些工作程序,因此每個工作程序的限制總和不會超過此變數的值。這個參數只能在 postgresql.conf
檔案或伺服器命令列上設定;但可以透過變更表儲存參數來覆蓋個別表的設定。
如果您在文件中看到任何不正確、與特定功能的經驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。