VACUUM FULL 是否需要 ANALYZE

Eoi*_*hir 11 postgresql statistics vacuum postgresql-9.3

如果您能深入了解VACUUMPostgreSQL 9.3 中的功能,我将不胜感激。我通读了文档并进行了一些搜索,但找不到明确的答案。

我正在为 9.3 服务器设置每周一次的数据库维护工作。

其中一部分将是一个VACUUM FULL. 这是一个很小的数据库,我有一个不错的周末维护窗口,所以我可以FULL毫无问题地运行它。

ANALYZE在命令中添加选项有什么意义吗?

根据 9.3 文档:

VACUUM FULL 将表的全部内容重写到一个没有额外空间的新磁盘文件中,允许将未使用的空间返回给操作系统。

如果表已完全重新创建,那么我是否需要特别要求ANALYZE发生或在将行写入表的新版本时自动更新统计信息?

Dan*_*ité 9

统计信息是根据列中的值生成的。由于这些值不会被VACUUM FULL甚至被改变VACUUMANALYZE因此没有特别要求新鲜。

但是,如果数据库处于维护时段,则是运行它的好机会。与VACUUM FULL.

默认情况下,DBA 将依赖 autovacuum/auto-analyze 而不是手动执行此操作,但手册除外,ANALYZE当一个刚刚被批量加载或大量修改的新表立即涉及到一个很好的计划的查询时没有好的统计数据是无法获得的。