理由:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
非常に多くの行を選択しているため、テーブル全体を読み取る方が安価です。
さらに読むための今日からの関連する以前の質問と回答:
-
PostgresqlがINクエリにインデックスを使用しないのはなぜですか?
-
インデックス付きの式のビューをクエリするときに間違ったインデックスを使用しているPostgres?
(インデックスの微妙な点に関する追加の注意事項については、2番目のCraigの長い回答も参照してください。)