Z powodu:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
Wybierasz tak wiele wierszy, że taniej jest przeczytać całą tabelę.
Powiązane wcześniejsze pytania i odpowiedzi z dzisiaj do dalszego czytania:
-
Dlaczego Postgresql nie używa indeksu dla zapytania IN?
-
Postgres używa nieprawidłowego indeksu podczas odpytywania widoku indeksowanych wyrażeń?
(Patrz także dłuższą odpowiedź Craiga na drugą odpowiedź, aby uzyskać dodatkowe uwagi na temat subtelności indeksów.)