我正在使用 PostgreSQL 数据库,需要一些关于何时VACUUM ANALYZE
在我的表上运行的建议。
我将一个非常大的表
tmp_details
(5000 万条记录)作为分区附加到现有表details
(5 亿条记录)中。该details
表经常用于报告,但我没有对其执行任何其他写入操作。鉴于 PostgreSQL 文档(https://www.postgresql.org/docs/current/populate.htmlVACUUM ANALYZE
)建议在加载大量数据后运行:- 贴上去之后还需要在桌子
VACUUM ANALYZE
上跑吗?details
tmp_details
- 如果是的话,我应该清理整个
details
桌子还是只清理新连接的分区?
- 贴上去之后还需要在桌子
我还
notreconciled
从中创建一个新表(1000 万条记录)tmp_details
。该notreconciled
表稍后将用于报告和分区。创建表后我应该VACUUM ANALYZE
在该表上运行吗?notreconciled
任何见解或最佳实践都将不胜感激!
文档指出:
由于您要向表中添加大约 10% 的数据
details
,因此在此基础上运行可能是有意义的ANALYZE
,特别是当新分区中的数据分布与其他分区中的数据分布不同时。如上文所述,这还会更新分区统计信息。您的第二个问题是关于将来某个时间
notreconciled
可能成为分区的表 ( ) ,您在帖子中引用的建议可以轻而易举地回答这个问题:在加载大量数据后运行,尤其是当它是新创建的表时。但是,如果您愿意等待,它将在某个时候由自动清理守护程序处理。VACUUM ANALYZE