19.10. 自動清理
這些設定控制自動清理特性的行為。 詳情請見
第 24.1.6 節。請注意在每個表基礎上可以重寫這些設定; 參閱
存儲參數。
-
(autovacuum
)boolean
- 控制伺服器是否運作自動清理啟動器背景程序。預設為開啟,不過要自動清理正常工作還需要啟用 track_counts 。該參數隻能在
postgresql.conf
檔案或伺服器指令行中設定。 然而,為單表通過修改表存儲參數可以禁用自動清理。
注意即使該參數被禁用,系統也會在需要防止事務ID回卷時發起清理程序。詳情請見
第 24.1.5 節 -
log_autovacuum_min_duration
integer
- 如果自動清理運作至少該值所指定的毫秒數,被自動清理執行的每一個動作都會被日志記錄。将該參數設定為0會記錄所有的自動清理動作。-1(預設值)将禁用對自動清理動作的記錄。例如,如果你将它設定為
,則所有運作250ms或更長時間的自動清理和分析将被記錄。此外,當該參數被設定為除250ms
外的任何值時,如果一個自動清理動作由于存在一個鎖沖突而被跳過,将會為此記錄一個消息。開啟這個參數對于追蹤自動清理活動非常有用。該設定隻能在-1
檔案或者伺服器指令行上設定。 但是可以通過為單表修改表存儲參數重寫這個設定。postgresql.conf
-
autovacuum_max_workers
integer
- 指定能同時運作的自動清理程序(除了自動清理啟動器之外)的最大數量。預設值為3。該參數隻能在伺服器啟動時設定。
-
autovacuum_naptime
integer
- 指定自動清理在任意給定資料庫上運作的最小延遲。在每一輪中背景程序檢查資料庫并根據需要為資料庫中的表發出
和VACUUM
指令。延遲以秒計,且預設值為1分鐘(ANALYZE
)。該參數隻能在1min
檔案或在伺服器指令行上設定。postgresql.conf
-
autovacuum_vacuum_threshold
integer
- 指定能在一個表上觸發
的被插入、被更新或被删除元組的最小數量。預設值為50個元組。該參數隻能在VACUUM
檔案或在伺服器指令中設定。對個别表可以通過修改存儲參數來覆寫該設定。postgresql.conf
-
autovacuum_analyze_threshold
integer
-
ANALYZE
postgresql.conf
-
autovacuum_vacuum_scale_factor
floating point
- 指定一個表尺寸的分數,在決定是否觸發
時将它加到VACUUM
上。預設值為0.2(表尺寸的20%)。該參數隻能在autovacuum_vacuum_threshold
postgresql.conf
-
autovacuum_analyze_scale_factor
floating point
-
ANALYZE
上。預設值為0.1(表尺寸的10%)。該參數隻能在autovacuum_analyze_threshold
postgresql.conf
-
autovacuum_freeze_max_age
integer
- 指定在一個
操作被強制執行來防止表中事務ID回卷之前,一個表的VACUUM
.pg_class
relfrozenxid
域能保持的最大年齡(事務的)。注意即便自動清理被禁用,系統也将發起自動清理程序來阻止回卷。
清理也允許從
子目錄中移除舊檔案,這也是為什麼預設值被設定為較低的2億事務。該參數隻能在伺服器啟動時設定,但是對于個别表可以通過修改存儲參數來降低該設定。詳見pg_xact
-
autovacuum_multixact_freeze_max_age
integer
-
操作被強制執行來防止表中多事務ID回卷之前,一個表的VACUUM
pg_class
relminmxid
域能保持的最大年齡(多事務的)。注意即便自動清理被禁用,系統也将發起自動清理程序來阻止回卷。
清理多事務也允許從
pg_multixact/members
子目錄中移除舊檔案,這也是為什麼預設值被設定為較低的400萬多事務。該參數隻能在伺服器啟動時設定,但是對于個别表可以通過修改存儲參數來降低該設定。詳見 第 24.1.5.1 節pg_multixact/offsets
-
autovacuum_vacuum_cost_delay
integer
- 指定用于自動
操作中的代價延遲值。如果指定-1(預設值),則使用 vacuum_cost_delay 值。預設值為20毫秒。該參數隻能在VACUUM
postgresql.conf
-
autovacuum_vacuum_cost_limit
integer
-
操作中的代價限制值。如果指定-1(預設值),則使用 vacuum_cost_limit 值。注意該值被按比例地配置設定到運作中的自動清理工作者上(如果有多個),是以每一個工作者的限制值之和絕不會超過這個變量中的限制值。該參數隻能在VACUUM
postgresql.conf
- 本文轉自PostgreSQL中文社群,原文連結: