過去数週間でパフォーマンスが低下した巨大な(〜150 GBytes)postgresqlデータベースがあります。パフォーマンスを向上させるために、 FULL VACUUM 、 [〜#〜] cluster [〜#〜] および [〜#〜] analysis [ 〜#〜] 。
これらの操作はどの順序で実行する必要がありますか?実行にかかる時間は気にせず、データベースのパフォーマンスの向上だけです。
ありがとう、
ウディ
それがあなたが話していることであるならば、あなたは決して VACUUMFULLを実行するべきです。
すべてのデータベースで、VACUUMとANALYZEを定期的に実行する必要があります。ここで行う最も簡単なことは、VACUUM ANALYZEを1つのコマンドとして実行することです。これにより、両方が実行されます。これも高速になります。
つまり、自動真空を使用できる場合を除きます。 8.3以降を使用している場合は、ほとんどの場合、これが推奨されます。そうすれば、不必要に実行することになりません。
できるという理由だけで、データベース内のすべてに対してCLUSTERを実行するべきではありません。特定のテーブルがある場合は、そこで実行します。ただし、ほとんどのワークロードは通常のCLUSTERをまったく必要とせず、すべてのテーブルにあるわけではありません。
CLUSTERを実行するテーブルには、VACUUMは必要ありません。