跳转到主要内容

清理与冻结

Vacuuming 分类下的 34 个 PostgreSQL 核心配置参数档案。

条目 URL 保持扁平;本分类仅用于侧栏与浏览组织。

autovacuum

Autovacuum 通过后台调度 VACUUM 与 ANALYZE 维持 MVCC 表的可用状态。它既是性能机制,也是防止事务号回卷的安全网,并非可有可无的清洁任务。

autovacuum_analyze_scale_factor

autovacuum_analyze_scale_factor:以 reltuples 的比例设置触发 ANALYZE 前的元组插入、更新或删除数量。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_analyze_score_weight

autovacuum_analyze_score_weight:设置 autovacuum 优先级中 ANALYZE 得分的缩放系数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_analyze_threshold

autovacuum_analyze_threshold:设置触发 ANALYZE 前元组插入、更新或删除数量的最低阈值。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 50,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_freeze_max_age

autovacuum_freeze_max_age:设置为防止事务 ID 回卷而强制自动清理表的年龄。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 200000000,context 为 postmaster。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_freeze_score_weight

autovacuum_freeze_score_weight:设置 autovacuum 优先级中事务 ID 冻结得分的缩放系数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_max_parallel_workers

autovacuum_max_parallel_workers:设置单个 autovacuum worker 可使用的最大并行 worker 数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_max_workers

设置集群内可同时运行的 autovacuum worker 上限,不包含 launcher。增加 worker 能提高调度容量,但也会提高并发维护的资源需求。

autovacuum_multixact_freeze_max_age

autovacuum_multixact_freeze_max_age:设置为防止 MultiXact 回卷而强制自动清理表的 MultiXact 年龄。实测在档范围为 PG9.3–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 400000000,context 为 postmaster。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_multixact_freeze_score_weight

autovacuum_multixact_freeze_score_weight:设置 autovacuum 优先级中 MultiXact 冻结得分的缩放系数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_naptime

autovacuum_naptime:设置两轮 autovacuum 扫描之间的休眠时间。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1 min,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_cost_delay

autovacuum_vacuum_cost_delay:设置 autovacuum 的清理成本延迟(毫秒)。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 2 ms,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_cost_limit

autovacuum_vacuum_cost_limit:设置 autovacuum 休眠前可用的清理成本额度。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 -1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_insert_scale_factor

autovacuum_vacuum_insert_scale_factor:以 reltuples 的比例设置触发 VACUUM 前的插入元组数量。它是 PG13–18 的 sighup 参数;最新实测启动默认值为 0.2。

autovacuum_vacuum_insert_score_weight

autovacuum_vacuum_insert_score_weight:设置 autovacuum 优先级中仅插入清理得分的缩放系数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_insert_threshold

autovacuum_vacuum_insert_threshold:设置触发 VACUUM 前插入元组数量的最低阈值。它是 PG13–18 的 sighup 参数;最新实测启动默认值为 1000。

autovacuum_vacuum_max_threshold

autovacuum_vacuum_max_threshold:设置触发 VACUUM 前更新或删除元组数量的最高阈值。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 100000000,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_scale_factor

控制普通 autovacuum VACUUM 触发条件中与表大小成比例的部分。数值越低,大表在更小比例的行变成旧版本后就会进入清理候选。

autovacuum_vacuum_score_weight

autovacuum_vacuum_score_weight:设置 autovacuum 优先级中普通 VACUUM 得分的缩放系数。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_vacuum_threshold

autovacuum_vacuum_threshold:设置触发 VACUUM 前更新或删除元组数量的最低阈值。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 50,context 为 sighup。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

autovacuum_worker_slots

autovacuum_worker_slots:设置为 autovacuum worker 分配的后端槽位数量。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 16,context 为 postmaster。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_cost_delay

vacuum_cost_delay:设置清理成本延迟(毫秒)。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0 ms,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_cost_limit

vacuum_cost_limit:设置清理进程休眠前可用的成本额度。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 200,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_cost_page_dirty

vacuum_cost_page_dirty:设置 VACUUM 弄脏一个页面的成本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 20,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_cost_page_hit

vacuum_cost_page_hit:设置 VACUUM 访问缓冲区缓存命中页面的成本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_cost_page_miss

vacuum_cost_page_miss:设置 VACUUM 访问缓冲区缓存未命中页面的成本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 2,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_failsafe_age

vacuum_failsafe_age:设置 VACUUM 为避免事务 ID 回卷停机而进入保护模式的年龄。它是 PG14–18 的 user 参数;最新实测启动默认值为 1600000000。

vacuum_freeze_min_age

vacuum_freeze_min_age:设置 VACUUM 冻结表行所需的最小年龄。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 50000000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_freeze_table_age

vacuum_freeze_table_age:设置 VACUUM 为冻结元组而扫描整张表的年龄。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 150000000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_max_eager_freeze_failure_rate

vacuum_max_eager_freeze_failure_rate:设置 VACUUM 在关闭积极冻结扫描前,允许扫描但未能冻结的页面比例。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0.03,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_multixact_failsafe_age

vacuum_multixact_failsafe_age:设置 VACUUM 为避免 MultiXact 回卷停机而进入保护模式的年龄。它是 PG14–18 的 user 参数;最新实测启动默认值为 1600000000。

vacuum_multixact_freeze_min_age

vacuum_multixact_freeze_min_age:设置 VACUUM 冻结表行中 MultiXactId 所需的最小年龄。实测在档范围为 PG9.3–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 5000000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_multixact_freeze_table_age

vacuum_multixact_freeze_table_age:设置 VACUUM 为冻结 MultiXact 而扫描整张表的年龄。实测在档范围为 PG9.3–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 150000000,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。

vacuum_truncate

vacuum_truncate:允许 VACUUM 截断表尾的空页面。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 user。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。