在Postgres 9.4上真空充满后我需要重新索引吗?

Aks*_*aaj 23 postgresql vacuum

我正在使用Postgres 9.4.

我刚跑完真空.我读到了真空和真空之间的差异,如果我应该使用真空或真空吸尘器,我会考虑很多.据我所知,我需要真空充满,我的数据库大小从48 GB下降到24 GB.

在真空充满后,旧指数会变得过时,我是否需要运行reindex?

我运行了"真空全冗余分析",因此分析完成了真空.

我在几个地方看过,对于Postgres> 9.0,真空充满后我不需要重新索引,但我想确定是这样的.

Dan*_*ité 40

a REINDEX之后的一个VACUUM FULL无用的,因为VACUUM FULL它自己重建了索引.

这在恢复磁盘空间的9.4文档中提到:

...要回收它占用的多余磁盘空间,您需要使用VACUUM FULL,或者使用CLUSTER或ALTER TABLE的表重写变体之一.这些命令重写表的全新副本并为其构建新索引.

你是正确的,在版本9.0之前不是这种情况,它已经 VACUUM FULL重新实现了不同的版本.

高达8.4版,VACUUM的参考文档提到了重新索引的必要性:

FULL选项不会缩小索引; 仍建议定期使用REINDEX.实际上,删除所有索引,VACUUM FULL并重新创建索引通常会更快.

但是这个警告现在已经过时了.