PostgreSQLのインデックスについて。 インデックスの有無によるクエリ実行速度の違いをベンチマークしていて気がついたんですが、制約によっては勝手にインデックスが生成されるんですね。それに気づかなかったから、実験データが無駄に・・・orz せっかくなので、その条件を調べてみました。ちなみに生成されるインデックスはすべてB-treeです。使ったのはPostgreSQL 8.3.7。 インデックスが生成される場合 PRIMARY KEYを指定する UNIQUE NOT NULLを指定する UNIQUEを指定する UNIQUE NOT NULLはPRIMARY KEYと同じ意味になります。 インデックスが生成されない場合 NOT NULLを指定する 何も指定しない まとめ UNIQUE制約またはPRIMARY KEYが定義されるとインデックスが生成されるようです。 調べてみると、このようにU