我正在使用Postgres 9.4。
我刚跑完真空。我读到了真空和真空之间的差异,如果我应该使用真空或真空吸尘器,我会考虑很多。据我所知,我需要真空充满,我的数据库大小从48 GB下降到24 GB。
在真空充满后,旧索引会不会过时,我是否需要运行reindex?
我跑了"真空完整的详细分析",所以分析是在真空充满的情况下完成的。
我在几个地方看过Postgres> 9.0,真空吸尘后我不需要重新索引,但我想确定是这样的。
答案 0 :(得分:38)
REINDEX
之后的VACUUM FULL
无用,因为VACUUM FULL
本身会重建索引。
Recovering Disk Space中的9.4文档中提到了这一点:
...要收回它占用的多余磁盘空间,您需要使用 VACUUM FULL,或者CLUSTER或其中一个表重写 ALTER TABLE的变种。这些命令重写了一个完整的新副本 该表和为其构建新索引。
你是正确的,在版本9.0之前并非如此,VACUUM FULL
重新实现了不同的版本。
最高版本8.4,VACUUM的参考文档提到了重新索引的必要性:
FULL选项不缩小索引;定期的REINDEX仍然存在 推荐的。实际上,删除所有索引VACUUM通常会更快 FULL,并重新创建索引。
但是这个警告现在已经过时了。