autovacuum 是一个 配置参数,用于确定是否应启动 Autovacuum 启动守护进程。
autovacuum 在 PostgreSQL 8.1 中添加。
默认
autovacuum 的默认值为:on。
用法
要启用 autovacuum,必须将 track_counts 设置为 on。如果禁用,PostgreSQL 日志中会发出 WARNING。
不建议禁用此参数。
请注意,可以通过更改表的 存储参数 "autovacuum_enabled" 来为单个表禁用自动清理。
从 PostgreSQL 18 开始,如果 autovacuum 设置为 off,则 CREATE INDEX 不会更新表统计信息。
按 PostgreSQL 版本详细信息
autovacuum (PostgreSQL 19)
| 设置 | 开启 |
| 单位 | |
| 类别 | 清理 / 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 18)
| 设置 | 开启 |
| 单位 | |
| 类别 | 清理 / 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 17)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 16)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 15)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 14)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 13)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 12)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 11)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 10)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 9.6)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 9.5)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:autovacuum
autovacuum (PostgreSQL 9.4)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 9.3)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 9.2)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 9.1)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 9.0)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 8.4)
| 设置 | 开启 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | |
| 启动值 | 开启 |
| 重置值 | 开启 |
| 源文件 | |
| 源行 |
文档:autovacuum
autovacuum (PostgreSQL 8.3)
| 设置 | |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 |
文档:autovacuum
autovacuum (PostgreSQL 8.2)
| 设置 | |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 启动 autovacuum 子进程。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | bool |
| 来源 | 默认 |
| 最小值 | |
| 最大值 |
文档:autovacuum
变更历史
- PostgreSQL 8.1
- (提交 29094193) 添加
示例
如果启用(默认值,且强烈推荐),autovacuum 活动将在日志中显示为类似以下条目:
[2023-01-21 20:23:58 UTC] LOG: 00000: automatic vacuum of table "postgres.public.foo": index scans: 0 [2023-01-21 20:24:47 UTC] LOG: 00000: automatic aggressive vacuum of table "template1.pg_catalog.pg_statistic": index scans: 1
如果启用了 autovacuum,但禁用了 track_counts,则日志中会发出 WARNING。
[2023-01-21 21:13:08 UTC] WARNING: 01000: autovacuum not started because of misconfiguration [2023-01-21 21:13:08 UTC] HINT: Enable the "track_counts" option.
参考资料
- PostgreSQL 文档: autovacuum
