PostgreSQLでクエリの実行計画を見る(EXPLAIN句)

PostgreSQLにおいて、とあるクエリを実行する時にどのように実行され(インデックス使ってるのかとか)、どれだけコストがかかっているか見るにはEXPLAIN句を使う。基本的な使い方

EXPLAIN 確認したいクエリ;

結果は以下のように出力される。

"Index Scan using id_timeline_create on eip_t_timeline  (cost=0.29..1071.74 rows=20027 width=998)"

id_timeline_createというインデックスを使っていることがわかる。costの左の数字(0.29)はスタートアップコスト、右の数字(1071.74)はトータルコストを表す。トータルコストが少なくなるようにするのが大切。
rowsは出力された行数を表す。widthは入力サイズを表すけどこれはあまり重要ではない。
ここで出力される値は推定のものであり、実際にクエリを実行して分析するときは以下のようにする。

EXPLAIN ANALYSE 確認したいクエリ;

詳しいことは以下のpdfが詳しいので参考にすると良いかも
http://lets.postgresql.jp/documents/technical/query_tuning/