web-dev-qa-db-ja.com

DB Full Vacuum、Cluster、Analyze-どの順序で?

過去数週間でパフォーマンスが低下した巨大な(〜150 GBytes)postgresqlデータベースがあります。パフォーマンスを向上させるために、 FULL VACUUM[〜#〜] cluster [〜#〜] および [〜#〜] analysis [ 〜#〜]

これらの操作はどの順序で実行する必要がありますか?実行にかかる時間は気にせず、データベースのパフォーマンスの向上だけです。

ありがとう、

ウディ

4
Adam Matan

それがあなたが話していることであるならば、あなたは決して VACUUMFULLを実行するべきです。

すべてのデータベースで、VACUUMとANALYZEを定期的に実行する必要があります。ここで行う最も簡単なことは、VACUUM ANALYZEを1つのコマンドとして実行することです。これにより、両方が実行されます。これも高速になります。

つまり、自動真空を使用できる場合を除きます。 8.3以降を使用している場合は、ほとんどの場合、これが推奨されます。そうすれば、不必要に実行することになりません。

できるという理由だけで、データベース内のすべてに対してCLUSTERを実行するべきではありません。特定のテーブルがある場合は、そこで実行します。ただし、ほとんどのワークロードは通常のCLUSTERをまったく必要とせず、すべてのテーブルにあるわけではありません。

CLUSTERを実行するテーブルには、VACUUMは必要ありません。

8
Magnus Hagander