N_live_tup value is less than actual row count in a table

Поиск
Список
Период
Сортировка
От Teja Jakkidi
Тема N_live_tup value is less than actual row count in a table
Дата
Msg-id D93AF3EA-7668-4FFD-87F4-211982B76C17@gmail.com
обсуждение исходный текст
Ответы Re: N_live_tup value is less than actual row count in a table  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-admin
Hello PGSQL Admin group,

I am noticing this wierd  behavior and not sure if this is how Postgres actually works.

I have a test table with 100000 rows and I deleted 20000 rows. So the current rows are 80000 and dead tuples should be 20000. After autovacuum completed, the dead tuples were gone.
When querying the pg_stat_all_tables, it returned n_live_tup value as 63945. Why is it less than actual row count 80000?

I read some articles and it is suggested to analyze manually to bring that n_live_tup number to actual row count. And it did work. After manual analyze, the n_live_tup is showing as 80000. 
I am having hard time understanding why is this behavior and if there is something internally that is happening which I am missing. Please help me understand.

Thanks,
Teja.

В списке pgsql-admin по дате отправления:

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: pg_basebackup and pg_receivewal timing, missing WAL files
Следующее
От: Tom Lane
Дата:
Сообщение: Re: N_live_tup value is less than actual row count in a table