n_live_tupand n_dead_tupin pg_stat_user_tablesor是什么意思pgstattuple?
Erw*_*ter 36
这两列是结果
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;
Run Code Online (Sandbox Code Playgroud)
死行是被删除的行,稍后将重新用于来自INSERTs 或UPDATEs(空间,而不是数据)的新行。一些死行(或保留的空闲空间)对于可以有效地重用同一数据页中的空间的 HOT 更新(仅堆元组)特别有用。更多关于热:
或者,死行可能会被表上的VACUUM FULL(或者VACUUM如果幸运的话,可以直接删除)或类似的操作删除,从而相应地缩小物理表。
每当删除或更新一行时,旧的行版本对于在提交事务后开始的所有其他事务都变得不可见。一旦没有更多未提交的旧事务,该行就完全死了。这是PostgreSQL 的 MVCC 模型处理并发所必需的。
这些只是统计数据。postgresql.conf如果您希望它们自动更新,您需要启用统计信息收集。track_counts不过应该是默认开启的。请记住,统计数据不会立即更新。在手册中阅读更多相关信息。