Answers:
这两列是
SELECT pg_stat_get_live_tuples(c.oid) AS n_live_tup
, pg_stat_get_dead_tuples(c.oid) AS n_dead_tup
FROM pg_class c;
表示表中活动行和死行(元组)的数量。在手册中
找到这些功能。
死行是已删除的行,以后将重新用于INSERT
s或UPDATE
s(空间,而不是数据)中的新行。一些死行(或保留的可用空间)对于HOT更新(仅堆元组)特别有用,HOT更新可以有效地重用同一数据页中的空间。更多有关HOT的信息:
或者可以通过对表进行死行VACUUM FULL
(或者VACUUM
如果幸运的话可以清除)或对表进行类似操作,从而相应地缩小物理表。
每当删除或更新一行时,在提交事务之后,所有其他事务都看不到旧行版本。一旦不再有未提交的较早事务,该行将完全消失。这对于PostgreSQL的MVCC模型处理并发是必要的。
这些只是统计数字。postgresql.conf
如果您希望统计信息自动更新,则需要启用它们。track_counts
但是默认情况下应启用。请记住,统计信息不会立即更新。在手册中阅读更多有关该内容的信息。
SELECT n_live_tup FROM pg_stat_user_tables WHEN relname = 'mytable';
为什么显示零?mytable
有6行。