autovacuum_vacuum_insert_threshold
一个 GUC 参数,用于指定触发自动清理所需的插入元组数
autovacuum_vacuum_insert_threshold 是一个 配置参数,用于指定触发自动清理(autovacuum)所需的插入元组数。
autovacuum_vacuum_insert_threshold 于 PostgreSQL 13 中添加。
默认值
autovacuum_vacuum_insert_threshold 的默认值为:1000。
用法
autovacuum_vacuum_insert_threshold 也可用作 存储参数,因此可以为单个表进行设置。
按 PostgreSQL 版本详细信息
autovacuum_vacuum_insert_threshold (PostgreSQL 19)
| 设置 | 1000 |
| 单位 | |
| 类别 | 清理 / 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数。 |
| 扩展描述 | -1 表示禁用插入清理。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 18)
| 设置 | 1000 |
| 单位 | |
| 类别 | 清理 / 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数。 |
| 扩展描述 | -1 表示禁用插入清理。 |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 17)
| 设置 | 1000 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数,或 -1 表示禁用插入清理。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 16)
| 设置 | 1000 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数,或 -1 表示禁用插入清理。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 15)
| 设置 | 1000 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数,或 -1 表示禁用插入清理。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 14)
| 设置 | 1000 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数,或 -1 表示禁用插入清理。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
autovacuum_vacuum_insert_threshold (PostgreSQL 13)
| 设置 | 1000 |
| 单位 | |
| 类别 | 自动清理 |
| 简短描述 | 清理前所需的最小元组插入数,或 -1 表示禁用插入清理。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | -1 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1000 |
| 重置值 | 1000 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
变更历史
- PostgreSQL 13
- 添加于 (commit b07642db)
示例
演示 autovacuum_vacuum_insert_threshold 的效果 - 这里设置为默认值 1000
postgres=# CREATE TABLE foo (id INT);
CREATE TABLE
postgres=# INSERT INTO foo VALUES (generate_series(1,10));
INSERT 0 10
postgres=# SELECT n_tup_ins, last_autovacuum
FROM pg_stat_user_tables
WHERE relname='foo';
n_tup_ins | last_autovacuum
-----------+-----------------
10 |
(1 row)
如果将 autovacuum_vacuum_insert_threshold 改为 5 (此处通过表的 relopt 设置),它将在下一次自动清理时进行清理。
postgres=# ALTER TABLE foo SET (autovacuum_vacuum_insert_threshold = 5);
ALTER TABLE
postgres=# INSERT INTO foo VALUES (generate_series(1,10));
INSERT 0 10
postgres=# SELECT n_tup_ins, last_autovacuum
FROM pg_stat_user_tables
WHERE relname='foo';
n_tup_ins | last_autovacuum
-----------+-------------------------------
20 | 2021-12-14 12:10:13.156198+01
(1 row)
参考资料
- PostgreSQL 文档: autovacuum_vacuum_insert_threshold
有用链接
- PostgreSQL v13 新特性:调整仅插入表 autovacuum 行为 - 2020 年 4 月 Laurenze Albe / CyberTec 的博客文章
