インデックスを作成する必要がある26のテーブルを持つ200 GBのデータベースがあります。
現在、最大のテーブルではインデックスが作成されるまでに時間がかかります。これは、テーブルに〜12GBと400,000,000行が含まれるためです(> 4時間)。
maintenance_work_mem
を100GBに設定し、max_parallel_workers
を30に設定しました。
インデックス作成速度を向上させるために調整する必要がある他のパラメーターはありますか?
これはAWS Auroraで、postgres-10.6を使用して、違いが生じる場合に備えています。
他にデータベースを使用している人はいません。ダウンタイム/フルロックで問題ありません。
これはAWS Auroraで、postgres-10.6を使用して、違いが生じる場合に備えています。
はい、これはかなり重要です。ネイティブパラレルbtreeインデックスビルドはv11で導入されたため、「max_parallel_workers」設定はv10でのインデックスビルドには関係ありません。
アップグレードしない限り、複数のセッションを並行して開いて、それぞれに1つのインデックスを作成することにより、それらを自分で並列化する必要があります。並列プロセス(手動またはv11のいずれか)がある場合は、それぞれが多くのメモリを要求できるため、おそらく "maintenance_work_mem"も低くする必要があります。