Karena:
Seq Scan on invoices (...) (actual ... rows=118027 <— this
Filter: (account_id = 1)
Rows Removed by Filter: 51462 <— vs this
Total runtime: 39.917 ms
Anda memilih begitu banyak baris sehingga lebih murah untuk membaca seluruh tabel.
Terkait pertanyaan dan jawaban sebelumnya dari hari ini untuk bacaan lebih lanjut:
-
Mengapa Postgresql tidak menggunakan indeks untuk kueri IN?
-
Postgres menggunakan indeks yang salah saat menanyakan tampilan ekspresi yang diindeks?
(Lihat juga jawaban Craig yang lebih panjang pada jawaban kedua untuk catatan tambahan tentang kehalusan indeks.)