我在 postgres 文档中找不到答案,尽管一些 DBA 在他们的博客中声称手动分析会构建整个表的统计信息,而 autovacuum 只会更新增量统计信息,但有些 DBA 却说相反。
我知道 autovacuum 是真空的预定版本,并根据我们知道的其他参数进行分析。现在我的问题是 autovacuum 的分析是重建整个表的统计信息还是只更新现有的统计信息(增量)?与同一主题相关的另一个问题是,“默认统计”值是否也适用于 autovacuum 分析?
谢谢,
萨吉斯·P·谢蒂
我在 postgres 文档中找不到答案,尽管一些 DBA 在他们的博客中声称手动分析会构建整个表的统计信息,而 autovacuum 只会更新增量统计信息,但有些 DBA 却说相反。
我知道 autovacuum 是真空的预定版本,并根据我们知道的其他参数进行分析。现在我的问题是 autovacuum 的分析是重建整个表的统计信息还是只更新现有的统计信息(增量)?与同一主题相关的另一个问题是,“默认统计”值是否也适用于 autovacuum 分析?
谢谢,
萨吉斯·P·谢蒂
Autovacuum 的分析与手动分析(所有列)的作用相同。我在源代码中看不到任何支持“autovacuum 增量工作,手动分析完全重建”的内容。“update_attstats”甚至不看是谁在调用它。
他们以同样的方式处理“默认统计”。
和之间可能存在一些
vacuum
混淆。vacuum full
analyze
vacuum
是将死行标记为空闲空间的操作。analyze
是收集数据统计信息的操作。vacuum full
不是 的变体vacuum
,尽管名称暗示了它。这就是为什么我喜欢称它为unbloat
orrewrite
。这是重写整个表的操作。因此,此操作将真正回收可用空间并消除臃肿。有关更多详细信息,请阅读此处的文档:https ://www.postgresql.org/docs/current/routine-vacuuming.html