autovacuum_vacuum_max_threshold
一个 GUC 参数,用于指定触发自动 vacuum 操作的最大更新行数。
autovacuum_vacuum_max_threshold
是一个 配置参数,用于指定在表中更新或删除的元组(tuple)数量达到多少后,将自动启动 vacuum 操作。
autovacuum_vacuum_max_threshold
在 PostgreSQL 18 中被添加。
默认
autovacuum_vacuum_max_threshold
的默认值为:100,000,000
。
用法
默认情况下,PostgreSQL 使用 autovacuum_vacuum_threshold
和 autovacuum_vacuum_scale_factor
的组合来计算何时对表执行 vacuum。这通常意味着较小的表会更频繁地被 vacuum,这通常是期望的。然而,对于非常大的表,更新的行数虽然绝对数量较大,但占表大小的比例仍然很低,因此不太可能被 vacuum。
autovacuum_vacuum_max_threshold
通过允许指定一个绝对的更新行数来触发 vacuum 操作,从而解决了这个问题。
可以通过将 autovacuum_vacuum_max_threshold
设置为 -1
来禁用它。
autovacuum_vacuum_max_threshold
也可以作为 存储参数 使用,因此可以为单个表设置。
按 PostgreSQL 版本详细信息
autovacuum_vacuum_max_threshold (PostgreSQL 19)
设置 | 100000000 |
单位 | |
类别 | 清理 / 自动清理 |
简短描述 | 在 vacuum 之前允许的最大更新或删除的元组数量。 |
扩展描述 | -1 表示禁用最大阈值。 |
上下文 | sighup |
变量类型 | 整数 |
来源 | 默认 |
最小值 | -1 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 100000000 |
重置值 | 100000000 |
源文件 | |
源行 | |
需要重启 | false |
autovacuum_vacuum_max_threshold (PostgreSQL 18)
设置 | 100000000 |
单位 | |
类别 | 清理 / 自动清理 |
简短描述 | 在 vacuum 之前允许的最大更新或删除的元组数量。 |
扩展描述 | -1 表示禁用最大阈值。 |
上下文 | sighup |
变量类型 | 整数 |
来源 | 默认 |
最小值 | -1 |
最大值 | 2147483647 |
枚举值 | |
启动值 | 100000000 |
重置值 | 100000000 |
源文件 | |
源行 | |
需要重启 | false |
变更历史
- PostgreSQL 18
- 添加于 (提交 306dc520)
参考资料
- PostgreSQL 文档: autovacuum_vacuum_max_threshold
有用链接
- PostgreSQL 18:引入 autovacuum_vacuum_max_threshold - 2025 年 2 月 Daniel Westermann / dbi services 的博客文章