我有几个表,大小超过 1 TB。pg_stat_user_tables 中的 last_autovacuum 和 last_autoanalyze 列对于这些表具有 NULL。n_dead_tup 与 n_live_tup 的比率为 0.0001。有几个问题,我可以依赖 n_dead_tup 和 n_live_tup 数字吗?这些表有大量插入和少量更新,没有删除。如果我手动清理和分析这些表,这些列会更新吗?PostgreSQL 版本是 13.5
我有几个表,大小超过 1 TB。pg_stat_user_tables 中的 last_autovacuum 和 last_autoanalyze 列对于这些表具有 NULL。n_dead_tup 与 n_live_tup 的比率为 0.0001。有几个问题,我可以依赖 n_dead_tup 和 n_live_tup 数字吗?这些表有大量插入和少量更新,没有删除。如果我手动清理和分析这些表,这些列会更新吗?PostgreSQL 版本是 13.5
不要使用 13.5。更新至 13.latest。
n_dead_tup
通常是准确的(除非您刚刚VACUUM (FULL)
在表上运行),但我发现并非n_live_tup
总是如此。我会改用pg_class.reltuples
,就像 autovacuum 一样。手册
VACUUM
将会ANALYZE
更新价值观。