这些设置控制 自动清理 功能的行为。有关更多信息,请参阅 第 24.1.6 节。请注意,许多这些设置可以在每个表的基础上被覆盖;请参阅 存储参数。
autovacuum
(boolean
) #控制服务器是否应该运行自动清理启动器守护进程。默认情况下,此选项处于启用状态;但是,track_counts 也必须启用,自动清理才能正常工作。此参数只能在 postgresql.conf
文件中或服务器命令行上设置;但是,可以通过更改表存储参数来禁用单个表的自动清理。
请注意,即使此参数被禁用,系统也将在必要时启动自动清理进程以防止事务 ID 缠绕。有关更多信息,请参阅 第 24.1.5 节。
autovacuum_max_workers
(integer
) #指定在任何时间点都可以运行的自动清理进程(除了自动清理启动器)的最大数量。默认值为 3。此参数只能在服务器启动时设置。
autovacuum_naptime
(integer
) #指定在任何给定数据库上运行自动清理之间最小的延迟。在每个轮次中,守护进程会检查数据库,并为该数据库中的表发出 VACUUM
和 ANALYZE
命令(如果需要)。如果此值在没有单位的情况下指定,则将其视为秒。默认值为 1 分钟 (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
文件中或服务器命令行上设置;但是,可以通过更改表存储参数来覆盖单个表的设置。
如果您在文档中看到任何错误,与您对特定功能的体验不符,或者需要进一步澄清,请使用 此表格 报告文档问题。