が完了CREATE INDEX
すると、インデックスを使用する準備が整います。その後、実行する必要はありませんREINDEX
。
REINDEX
ドキュメントページから:
REINDEX は、インデックスの内容が最初から再構築されるという点で、インデックスの削除と再作成に似ています。ただし、ロックに関する考慮事項はかなり異なります。REINDEX は書き込みをロックアウトしますが、インデックスの親テーブルの読み取りはロックアウトしません。
つまり、 afterREINDEX
と同様に動作します。CREATE
DROP
そしてCREATE INDEX
ドキュメントページから:
インデックスを作成すると、データベースの通常の操作が妨げられる可能性があります。通常、PostgreSQL は書き込みに対してインデックスを作成するテーブルをロックし、テーブルの 1 回のスキャンでインデックス構築全体を実行します。他のトランザクションは引き続きテーブルを読み取ることができますが、テーブル内の行を挿入、更新、または削除しようとすると、インデックスの構築が完了するまでブロックされます。
これは、作成がインデックス化を意味することを明確に説明していると思います。
ただし、特定のクエリがインデックスを使用するかどうかは、さまざまなことに依存します。クエリがインデックスを使用しない場合は、クエリ、テーブル定義 (create table
ステートメントなど)、定義したインデックス、およびexplain (analyze, verbose)
クエリの出力を投稿する必要があります。