database - n_live_tup 和 n_dead_tup 的变化是否意味着一些新行被插入到表中
问题描述
我需要检查是否将某些行插入到一个特定的表中。我需要每天检查它。
我已经尝试过使用pg_stat_all_tables.n_live_tup
它,但我不确定它是否正确并且最初是为此目的而设计的。
columns n_tup_ins
, n_tup_upd
,是否也n_tup_del
描述了是否有任何行被插入、更新或删除?
解决方案
这些统计数据由统计收集器进程收集和更新。各个数据库后端通过 UDP 套接字将统计信息发送到统计收集器。
这有两个后果:
- 信息是异步更新的,因此在数据库操作完成与统计数据中其影响的可见性之间可能存在延迟。
- 在 UDP 中,消息可能会丢失。
该信息在内部用于触发 autovacuum 和 autoanalyze,因此数字是否 100% 准确并不重要。如果这对您的目的来说足够好,那么您当然可以使用该信息。
推荐阅读
- mips - MIPS r3000 - 并行加载数据?
- r - 忽略 R 中的 NA 的列的每次更改都会增加 1
- python - 如何在 for 循环中获取 seaborn 的 distplot 的线拟合数据?
- abap - 按时间戳和日期列连接表?
- c++ - 如何通过类构造函数创建成员对象?
- javascript - 使用 jQuery 滚动文本
- javascript - 从单击元素的父级读取数据集
- content-management-system - sitefinity 升级到 12.2 后无法在动态模块中发布内容
- python - 使用 seaborn 检索 1 个特定的斧头及其组件
- javascript - 创建动态 div 并使其可编辑,但一旦写入它,光标就会始终启动