Por:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
Está seleccionando tantas filas que es más económico leer toda la tabla.
Preguntas anteriores relacionadas y respuestas de hoy para leer más:
-
¿Por qué Postgresql no usa el índice para la consulta IN?
-
¿Postgres usa un índice incorrecto al consultar una vista de expresiones indexadas?
(Consulte también la respuesta más larga de Craig sobre la segunda para obtener notas adicionales sobre las sutilezas de los índices).