n_live_tup 和 n_dead_tup 中的更改是否意味着一些新行已插入 table

Does change in n_live_tup and n_dead_tup means that some new rows were inserted into a table

我需要检查是否有一些行被插入到一个特定的 table 中。我需要每天检查一下。

我已经尝试为此使用 pg_stat_all_tables.n_live_tup,但我不确定它是否工作正常以及最初是否为此目的而设计。

n_tup_insn_tup_updn_tup_del 列是否也描述了是否插入、更新或删除了任何行?

这些统计数据由统计收集器进程收集和更新。 各个数据库后端通过 UDP 套接字将统计信息发送到统计收集器。

这有两个后果:

  • 信息是异步更新的,因此数据库操作的完成与其影响在统计数据中的可见性之间可能存在延迟。
  • 在 UDP 中,消息可能会丢失。

该信息在内部用于触发 autovacuum 和 autoanalyze,因此数字是否 100% 准确并不重要。如果这足以满足您的目的,那么您当然可以使用该信息。