På grund af:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
Du vælger så mange rækker, at det er billigere at læse hele tabellen.
Relaterede tidligere spørgsmål og svar fra i dag til yderligere læsning:
-
Hvorfor bruger Postgresql ikke indeks til IN-forespørgsel?
-
Postgres bruger forkert indeks, når du forespørger på en visning af indekserede udtryk?
(Se også Craigs længere svar på det andet for yderligere bemærkninger om indeksernes finesser.)