Database

數據庫完全真空、集群、分析 - 按什麼順序?

  • November 27, 2021

我有一個巨大的(~150 GB)postgresql 數據庫,它的性能在過去幾週內下降了。為了提高性能,我打算執行FULL VACUUMCLUSTERANALYZE

我應該按什麼順序執行這些操作?我不介意執行所需的時間,只介意數據庫的性能改進。

如果這就是你所說的,你不應該執行 VACUUM FULL

您應該在所有數據庫上定期執行 VACUUM 和 ANALYZE。在這裡最簡單的做法是將 VACUUM ANALYZE 作為一個命令執行,這將同時執行這兩個命令 - 這也會更快。

除非,也就是說,您可以使用 autovacuum。如果您使用的是 8.3 或更高版本,那麼在大多數情況下,這將是建議。然後你就不會不必要地執行它。

您不應該僅僅因為可以就在數據庫中的所有內容上執行 CLUSTER。如果您有特定的表,請在此處執行。但是大多數工作負載根本不需要正常的 CLUSTER——當然也不是在所有表上。

您在其上執行 CLUSTER 的表不需要 VACUUM。

引用自:https://serverfault.com/questions/59032