Postgresql 中文操作指南
20.10. Automatic Vacuuming #
这些设置控制 autovacuum 功能的行为。有关更多信息,请参阅 Section 25.1.6。请注意,可以在单个表基础上覆盖这些设置中的许多设置;请参阅 Storage Parameters。
-
autovacuum (boolean) #
-
控制服务器是否应运行自动清理启动程序守护程序。默认情况下,它处于打开状态;但是,还必须启用 track_counts 才能使自动清理正常工作。此参数只能在 postgresql.conf 文件中或在服务器命令行中设置;但是,可以通过更改表存储参数来禁用各个表的自动清理功能。
-
请注意,即使禁用此参数,系统也会在必要时启动自动清理进程以防止事务 ID 环绕。有关更多信息,请参阅 Section 25.1.5。
-
-
autovacuum_max_workers (integer) #
-
指定任何时间可能正在运行的自动真空进程(自动真空启动程序除外)的最大数量。默认为三。此参数只能在服务器启动时设置。
-
-
autovacuum_naptime (integer) #
-
指定在任何给定数据库上运行自动真空之间的最小延迟。在每一轮中,守护程序都会检查数据库,并在需要时向该数据库中的表发出 VACUUM 和 ANALYZE 命令。如果未指定此值单位,则以秒为单位。默认值为一分钟(1min)。此参数只能在 postgresql.conf 文件或服务器命令行中设置。
-
-
autovacuum_vacuum_threshold (integer) #
-
指定触发展开式清除任何一个表所需的最小更新或已删除元组数。默认值为 50 个元组。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但在单个表的基础上,可以通过更改表存储参数来覆盖此设置。
-
-
autovacuum_vacuum_insert_threshold (integer) #
-
指定触发展开式清除任何一个表所需的已插入元组数。默认值为 1000 个元组。如果指定 -1,自动真空将不会根据插入数触发任何表上的 VACUUM 操作。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但在单个表的基础上,可以通过更改表存储参数来覆盖此设置。
-
-
autovacuum_analyze_threshold (integer) #
-
指定触发展开式清除任何一个表所需的最小已插入、已更新或已删除元组数。默认值为 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) #
-
指定在 VACUUM 操作被迫防止表中的事务 ID 换行之前,表中的 pg_class 字段可以达到的最大年龄(按事务)。请注意,即使在其他情况下停用了自动清理,系统也会启动自动清理进程以防止换行。
-
Vacuum 还允许从 pg_xact 子目录中移除旧文件,这就是为什么默认值相对较低(2 亿笔交易)。此参数只能在服务器启动时设置,但可以通过更改表存储参数,为各个表降低该设置。有关详细信息,请参阅 Section 25.1.5。
-
-
autovacuum_multixact_freeze_max_age (integer) #
-
指定在 VACUUM 操作被迫防止表格中多事务 ID 换行之前,表格中的 pg_class . relminmxid 字段可以达到的最大年龄(按多事务)。请注意,即使在其他情况下停用了自动清理,系统也会启动自动清理进程以防止换行。
-
对 multixact 进行 vacuum 也允许从 pg_multixact/members 和 pg_multixact/offsets 子目录中移除旧文件,这就是为什么默认值相对较低(4 亿个 multixact)。此参数只能在服务器启动时设置,但可以通过更改表存储参数,为各个表降低该设置。有关详细信息,请参阅 Section 25.1.5.1。
-
-
autovacuum_vacuum_cost_delay (floating point) #
-
指定将在自动 VACUUM 操作中使用的成本延迟值。如果指定 -1,则将使用常规 vacuum_cost_delay 值。如果未带单位指定此值,则将其视为毫秒。默认值为 2 毫秒。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但可以通过更改表存储参数,对各个表覆盖该设置。
-
-
autovacuum_vacuum_cost_limit (integer) #
-
指定将在自动 VACUUM 操作中使用的成本限制值。如果指定 -1(这是默认值),将使用常规 @@43 值。请注意,如果有多个运行的自动真空工作者,则此值会在它们之间按比例分配,以便每个工作者的限制总和不超过此变量的值。此参数只能在 postgresql.conf 文件或服务器命令行中设置;但在单个表的基础上,可以通过更改表存储参数来覆盖此设置。
-