På grund av:
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äljer så många rader att det är billigare att läsa hela tabellen.
Relaterade tidigare frågor och svar från idag för vidare läsning:
-
Varför använder inte Postgresql index för IN-fråga?
-
Postgres använder fel index när du frågar efter en vy av indexerade uttryck?
(Se även Craigs längre svar på det andra för ytterligare anteckningar om indexfinesser.)