查询 pg_stat_progress_vacuum 上显示的统计信息

Query on statistics shown on pg_stat_progress_vacuum

我试图理解以下参数的含义:max_dead_tuples / num_dead_tuplespg_stat_progress_vacuum 视图中。

来自 Postgres 文档:

max_dead_tuples bigint Number of dead tuples that we can store before needing to perform an index vacuum cycle, based on maintenance_work_mem.

num_dead_tuples bigint Number of dead tuples collected since the last index vacuum cycle.

这是否意味着根据 maintenance_work_mem 分配更改此值?我尝试为此参数设置不同的值,max_dead_tuples 上的数字增加到 178956970 并且没有进一步移动。即使我减少 maintenance_work_mem 这个计数器保持不变。为什么?这两个参数表示什么?

编辑:

注意到当我使用 select pg_stat_reset() 重置统计信息时;更改 maintenance_work_mem 后,我在 max_dead_tuples 中看到了不同的值。但是我不明白为什么值不一致?

请指教

VACUUM 这样进行:

  1. 它扫描 table,直到找到适合 autovacuum_work_mem(默认为 maintenance_work_mem)的死元组。 max_dead_tuples 是 PostgreSQL 估计 autovacuum_work_mem.

  2. 中可以容纳多少元组
  3. 它扫描所有索引并删除指向那些死元组的条目。

重复这两个步骤,直到处理完整个table。 num_dead_tuples 是在当前迭代中已经找到的死元组数。

据我所知,更改 maintenance_work_mem 不会影响已经 运行 VACUUM,但我可能错了。