インデックスの再構築 - AWS 規範ガイダンスインデックスの再構築
REINDEX コマンドは、一貫したデータベースパフォーマンスを維持するのに役立ちます。テーブルに対して多数の DML 操作を実行すると、テーブルとインデックスの両方が肥大化します。インデックスを使用することでテーブルの検索が速くなり、クエリのパフォーマンスが向上します。インデックスの肥大化は、検索やクエリのパフォーマンスに影響します。したがって、クエリの一貫したパフォーマンスを維持するために、大量の DML 操作が含まれるテーブルに対してインデックスの再構築を実行することをお勧めします。
REINDEX コマンドによって、基になるテーブルの書き込み操作をロックし、インデックスを最初から再構築しますが、テーブルでの読み取り操作は可能です。ただし、インデックスでは読み取り操作がブロックされます。対応するインデックスを使用するクエリはブロックされますが、他のクエリはブロックされません。
PostgreSQL バージョン 12 では、新しいオプションパラメータの CONCURRENTLY が導入されました。これによりインデックスがゼロから再構築されますが、テーブルでの読み取り操作や書き込み操作、またはインデックスを使用するクエリはロックされません。ただし、このオプションを使用すると、処理が完了するまでに時間がかかります。