REINDEXをすると、そのIndexを使用するSELECT文はブロックされます。 そしてSELECT文はたいていIndexを使用します。 つまり、たいていのケースではREINDEXでSELECT文がブロックされます。 (ブロックされないのは、そのテーブルにアクセスが全く来ない場合とか、よっぽど特殊なケース) 公式マニュアルにはこのことがはっきり書かれていない(極めて紛らわしい書き方になっている)ので注意が必要です。 REINDEXはインデックスの元となるテーブルの書き込みをロックしますが、読み込みはロックしません。 また、処理中のインデックスに対する排他ロックを取得するので、そのインデックスを使用する読み込みはブロックされます。 http://www.postgresql.jp/document/8.4/html/sql-reindex.html この説明の肝は最後の一文にあります。 た
![[PostgreSQL]本当は怖いREINDEX · DQNEO日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/8f7de7c0278993661a11fbc3637f96292ba773aa/height=288;version=1;width=512/http%3A%2F%2Fdqn.sakusakutto.jp%2Fimages%2Fkali.jpg)