PostgreSQL インデックス作成

PostgreSQL インデックス作成

とあるサイトのログイン処理が遅いな〜

と思ってEXPLAINで確認したら、「Seq Scan」って、インデックス使ってない。。

# EXPLAIN select * from session where id='xxxxx';
                           QUERY PLAN
-----------------------------------------------------------------
 Seq Scan on "session"  (cost=0.00..49190.06 rows=9651 width=72)
   Filter: (id = 'xxxxx'::text)
インデックスを作成
CREATE INDEX session_idx ON session (id);
確認
# EXPLAIN select * from session where id='xxxxx';
                                  QUERY PLAN
-------------------------------------------------------------------------------
 Index Scan using session_idx on "session"  (cost=0.00..22.06 rows=5 width=72)
   Index Cond: (id = 'xxxxx'::text)

コストが下記のように小さくなり、処理が早くなりました。
cost=0.00..49190.06

cost=0.00..22.06