ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 18.10\. 自动清理 这些设置控制_自动清理_的缺省行为。请参阅[Section 23.1.6](#calibre_link-77)获取更多信息。 `autovacuum` (`boolean`) 控制服务器是否应该启动autovacuum守护进程。缺省是关闭的。然而, [track_counts](#calibre_link-1454)还必须启用自动清理工作。 这个选项只能在`postgresql.conf`文件里或者是服务器命令行中设置。 请注意,即使禁用该参数,如果有必要避免事务ID重叠,系统仍将启动自动清理进程。 请参阅[Section 23.1.5](#calibre_link-92)获取更多详细信息。 `log_autovacuum_min_duration` (`integer`) 如果它运行至少毫秒指定数,导致记录自动清理所执行的每个动作。 此设置为零记录所有自动清理操作。减一(默认)禁用日志记录 自动清理动作。例如,如果您将其设置为`250ms`, 那么将记录运行250ms或更长时间的所有自动清理和分析。 此外,当这个参数设置为除`-1`外的其他任何值, 如果由于冲突锁的存在而忽略自动清理操作,则记录这条消息。 启用此参数可以有益于跟踪自动清理活动。这个设置只能在`postgresql.conf` 文件或者服务器命令行上设置。 `autovacuum_max_workers` (`integer`) 指定自动清理进程的最大数(除了自动清理发射器),它可以在任一时刻运行。 默认是三。这个参数只能在服务器启动时设置。 `autovacuum_naptime` (`integer`) 声明运行在任何给定数据库上的autovacuum之间的最小延迟。在每次运行的周期里, 守护进程都会检查一个数据库, 并根据需要为该数据库的表发出`VACUUM`和`ANALYZE`命令。 这个延迟是以秒计的,缺省为1分钟(`1min`)。 这个选项只能在`postgresql.conf`文件里或者服务器命令行中设置。 `autovacuum_vacuum_threshold` (`integer`) 声明在任何表里触发`VACUUM`所需最小的行更新或删除数量。缺省是500。 这个选项只能在`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_analyze_scale_factor` (`floating point`) 声明在判断是否触发一个`ANALYZE`时增加到`autovacuum_analyze_threshold` 参数里面的表尺寸的分数。缺省是0.1(表大小的10%)。 这个选项只能在`postgresql.conf`文件里或者服务器启动的时候设置。 此处的设置可以被改变存储参数的独立表覆盖。 `autovacuum_freeze_max_age` (`integer`) 指定表的`pg_class`在事务中的最大寿命。`relfrozenxid`字段能够在强制 `VACUUM`操作以防止事务 ID在表内循环重复之前完成。需要注意的是,即使autovacuum被禁止系统也会调用 autovacuum 进程来防止循环重复。 自动清理允许删除来自`pg_clog`子目录的旧文件, 默认值是相对低于200百万事务。该参数只能在服务器启动时设置, 但是此处的设置可以通过改变存储参数独立表减少。 更多信息请参见[Section 23.1.5](#calibre_link-92)。 `autovacuum_vacuum_cost_delay` (`integer`) 声明将在自动`VACUUM`操作里使用的开销延迟数值。 声明-1将使用普通的[vacuum_cost_delay](#calibre_link-1455)数值。 缺省值是20毫秒。 这个选项只能在`postgresql.conf`文件里或者在服务器启动的时候设置。 此处的设置可以被改变存储参数的独立表覆盖。 `autovacuum_vacuum_cost_limit` (`integer`) 声明将在自动`VACUUM`操作里使用的开销限制数值。 -1(缺省值)将使用普通的[vacuum_cost_limit](#calibre_link-1456)数值。 要注意的是值将按比例分配给运行autovacuum工作者, 如果有一个以上,这样每个工作者限制总和不会超过此变量的极限。 这个选项只能在`postgresql.conf`文件里或者在服务器启动的时候设置。 此处的设置可以通过改变存储参数独立表覆盖。