支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:开发版
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

19.10. 自动清理 #

这些设置控制自动清理功能的行为。有关更多信息,请参阅第 24.1.6 节。请注意,其中许多设置可以在每个表的基础上被覆盖;请参阅存储参数

autovacuum (boolean) #

控制服务器是否应运行自动清理启动器守护进程。默认情况下是开启的;但是,要使自动清理工作,还必须启用track_counts。此参数只能在postgresql.conf文件中或在服务器命令行上设置;但是,可以通过更改表存储参数来禁用单个表的自动清理。

请注意,即使禁用此参数,如果需要防止事务 ID 回卷,系统也会启动自动清理进程。有关更多信息,请参阅第 24.1.5 节

autovacuum_max_workers (integer) #

指定任何时候可能正在运行的自动清理进程(自动清理启动器除外)的最大数量。默认值为三个。此参数只能在服务器启动时设置。

autovacuum_naptime (integer) #

指定在任何给定数据库上自动清理运行之间的最小延迟。在每一轮中,守护进程都会检查数据库,并根据需要为该数据库中的表发出VACUUMANALYZE命令。如果此值未指定单位,则视为秒。默认值为一分钟 (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) #

指定表大小的分数,在决定是否触发VACUUM时添加到autovacuum_vacuum_threshold。默认值为 0.2(表大小的 20%)。此参数只能在postgresql.conf文件中或在服务器命令行上设置;但是,可以通过更改表存储参数来覆盖单个表的设置。

autovacuum_vacuum_insert_scale_factor (floating point) #

指定表大小的分数,在决定是否触发VACUUM时添加到autovacuum_vacuum_insert_threshold。默认值为 0.2(表大小的 20%)。此参数只能在postgresql.conf文件中或在服务器命令行上设置;但是,可以通过更改表存储参数来覆盖单个表的设置。

autovacuum_analyze_scale_factor (floating point) #

指定表大小的分数,在决定是否触发ANALYZE时添加到autovacuum_analyze_threshold。默认值为 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 回卷之前可以达到的最大年龄(以多事务数计)。请注意,即使在其他情况下禁用自动清理,系统也会启动自动清理进程以防止回卷。

清理多事务 (multixact) 也允许从 pg_multixact/memberspg_multixact/offsets 子目录中删除旧文件,这也是为什么默认值相对较低,为 4 亿个多事务的原因。此参数只能在服务器启动时设置,但是可以通过更改表存储参数来减少单个表的设置。有关详细信息,请参阅第 24.1.5.1 节

autovacuum_vacuum_cost_delay (浮点数) #

指定在自动 VACUUM 操作中将使用的成本延迟值。如果指定 -1,将使用常规的 vacuum_cost_delay 值。如果此值未指定单位,则视为毫秒。默认值为 2 毫秒。此参数只能在 postgresql.conf 文件中或在服务器命令行中设置;但是可以通过更改表存储参数来覆盖单个表的设置。

autovacuum_vacuum_cost_limit (整数) #

指定在自动 VACUUM 操作中将使用的成本限制值。如果指定 -1(这是默认值),将使用常规的 vacuum_cost_limit 值。请注意,如果存在多个自动清理工作进程,该值将在运行的自动清理工作进程之间按比例分配,以便每个工作进程的限制总和不超过此变量的值。此参数只能在 postgresql.conf 文件中或在服务器命令行中设置;但是可以通过更改表存储参数来覆盖单个表的设置。

提交更正

如果您在文档中看到任何不正确的内容,或者与您对特定功能的体验不符,或者需要进一步澄清的内容,请使用此表单来报告文档问题。