小编Rav*_*eja的帖子

postgresql 中的 n_dead_tup 与 dead_tuple_count ?

我最初认为n_dead_tupdead_tuple_count在 PostgreSQL 中给出相同的计数。但他们似乎并非如此。我不太明白到底有什么区别。

以下是我的观察:

  1. 创建了一个包含 10k 行的表。
  2. 更新了所有 10k 行。现在我有 10k 个死元组。

SELECT dead_tuple_count FROM public.pgstattuple('public.vacuum_test');

 dead_tuple_count 
------------------
            10002

select * from pg_stat_get_dead_tuples('18466');

 pg_stat_get_dead_tuples 
-------------------------
                   10002
Run Code Online (Sandbox Code Playgroud)
  1. 我在桌子上吸满了真空。正如预期的 dead_tuple_count 为 0。

SELECT dead_tuple_count FROM public.pgstattuple('public.vacuum_test');

 dead_tuple_count 
------------------
                0
Run Code Online (Sandbox Code Playgroud)

但从ien_dead_tup来看仍然是 10002:pg_stat_all_tablespg_stat_get_dead_tuples('18466')

select * from pg_stat_get_dead_tuples('18466');

 pg_stat_get_dead_tuples 
-------------------------
                   10002
Run Code Online (Sandbox Code Playgroud)

我多次重复此过程,并观察到n_dead_tup每次更新后更新的元组数量都会添加到统计数据中。

那么VACUUM这里到底在做什么呢?n_dead_tup和和有什么区别dead_tuple_count

postgresql vacuum

2
推荐指数
1
解决办法
3392
查看次数

标签 统计

postgresql ×1

vacuum ×1