20.10. 自动清理 #
这些设置控制 autovacuum 特性的行为。详情请参考第 25.1.6 节。注意很多这些设置可以被针对每个表的设置所覆盖,参见 Storage Parameters。
autovacuum(boolean) #控制服务器是否运行自动清理启动器后台进程。默认为开启,不过要使自动清理正常工作,还需要启用 track_counts。该参数只能在
postgresql.conf文件或服务器命令行中设置,不过,通过更改表存储参数可以为表禁用自动清理。注意即使该参数被禁用,系统也会在需要防止事务 ID 回卷时发起自动清理进程。详情请见第 25.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,则 autovacuum 不会根据插入数量在任何表上触发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) #指定一个要添加到
autovacuum_vacuum_insert_threshold中的表的大小的比例,在决定是否触发VACUUM时。默认值为 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.relfrozenxid字段可以达到的最大年龄(以事务计)。注意即使自动清理被禁用,系统也会启动自动清理进程来防止回卷。清理也允许从
pg_xact子目录中移除旧文件,这也是为什么默认值被设置为较低的 2 亿事务。该参数只能在服务器启动时设置,但是对于个别表可以通过修改表存储参数来降低该设置。详见第 25.1.5 节。autovacuum_multixact_freeze_max_age(integer) #指定在必须强制执行
VACUUM以防止表内多事务 ID 回卷之前,一个表的pg_class.relminmxid字段可以达到的最大年龄(以多事务计)。注意即使自动清理被禁用,系统也会启动自动清理进程来防止回卷。清理多事务也允许从
pg_multixact/members和pg_multixact/offsets子目录中移除旧文件,这也是为什么默认值被设置为较低的 4 亿个多事务。该参数只能在服务器启动时设置,但是对于个别表可以通过修改表存储参数来降低该设置。详见第 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(默认值),则使用 vacuum_cost_limit 值。注意该值被按比例地分配到运行中的自动清理工作进程上(如果有多个),因此每一个工作进程的限制值之和不会超过这个变量中的值。该参数只能在postgresql.conf文件或在服务器命令行上设置。但是对个别表可以通过修改表存储参数来覆盖该设置。
报告文档问题
阅读 上游文档. 通过 PostgreSQL 文档反馈表单.