這些設定控制自動清理功能的行為。請參閱第 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 環繞之前的最大期限(以交易次數計)。請注意,即使在其他情況下停用自動清理時,系統也會啟動自動清理程序以防止環繞。
Vacuum 也能從 pg_xact
子目錄中移除舊檔案,這就是為什麼預設值是一個相對較低的 2 億次交易的原因。此參數只能在伺服器啟動時設定,但可以透過變更表格儲存參數來減少個別表格的設定。如需更多資訊,請參閱第 24.1.5 節。
autovacuum_multixact_freeze_max_age
(integer
) #指定表格的 pg_class
.relminmxid
欄位在觸發強制執行 VACUUM
操作以防止表格內 multixact ID 環繞之前的最大期限(以 multixact 次數計)。請注意,即使在其他情況下停用自動清理時,系統也會啟動自動清理程序以防止環繞。
清理 multixact 也能從 pg_multixact/members
和 pg_multixact/offsets
子目錄中移除舊檔案,這就是為什麼預設值是一個相對較低的 4 億次 multixact 的原因。此參數只能在伺服器啟動時設定,但可以透過變更表格儲存參數來減少個別表格的設定。如需更多資訊,請參閱第 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
檔案中或在伺服器命令列上設定;但可以透過變更表格儲存參數來覆寫個別表格的設定。
如果您在文件中發現任何不正確之處、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單回報文件問題。