A causa di:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
Stai selezionando così tante righe che è più economico leggere l'intera tabella.
Domande e risposte precedenti correlate da oggi per ulteriori letture:
-
Perché Postgresql non usa l'indice per la query IN?
-
Postgres utilizza un indice errato durante la query di una vista di espressioni indicizzate?
(Vedi anche la risposta più lunga di Craig sulla seconda per note aggiuntive sulle sottigliezze degli indici.)