OracleからPostgreSQLに移行する際に起きた問題。 PostgreSQLをインストールし、テーブルを作成してデータをインポートした。 が、検索が妙に遅い。 実行計画を見ると、インデックスを参照していない。 よくよく見てみたら、OracleにはあったインデックスをPostgreSQLには作成していなかった。 そりゃ参照しねえわと思い、インデックス張ってみた。 でも遅い…。確かに何個ものテーブルをJOINして、何十万行もの結果を返すとはいえ、30分はかかりすぎだろう。実用にはとても耐えられない。 explain analyzeで実行計画を見ると、costで予測する行数とactualで実際に取ってきた行数が異常に乖離している。これはおかしい。いくらなんでもおかしすぎる。costでは数千万、数億行取得すると予測しているのに、実際には数十万行程度しか取得していなかった。 もしかして、実行
