数据库全真空,集群,分析 – 以哪个顺序?

我有一个庞大的(〜150 GB的)postgresql数据库,在过去的几个星期里,它的性能下降了。 为了提高性能,我打算执行完整的真空 , 集群和分析 。

我应该以何种顺序执行这些操作? 我不介意执行的时间,只是数据库的性能改进。

谢谢,

乌迪

如果这就是你所说的,你永远不应该运行VACUUM FULL。

您应该定期在所有数据库上运行VACUUM和ANALYZE。 最简单的做法就是将VACUUM ANALYZE作为一个命令来运行,这样做会更快。

除非,也就是说,你可以使用autovacuum。 如果你在8.3或更新版本,这将是大多数情况下的build议。 那么你不会不必要地运行它。

您不应该在数据库中的所有内容上运行CLUSTER,只是因为可以。 如果您有特定的表格,请在此处运行。 但大多数工作负载根本不需要常规的CLUSTER,当然也不需要所有的表。

你运行CLUSTER的表不需要VACUUM。