Svaret ligger i denne del af udførelsesplanen:
Seq Scan ... (actual ... rows=2876756 ...)
...
Rows Removed by Filter: 141052
Da næsten alle rækker alligevel returneres, er det den mest effektive måde at behandle forespørgslen på at bruge en sekventiel scanning og kassere de få rækker, der er filtreret fra.
Hvis du vil bekræfte det, midlertidigt
SET enable_seqscan = off;
for at få PostgreSQL til at undgå en sekventiel scanning, hvis det er muligt. Så kan du teste, om udførelse af forespørgsler bliver hurtigere eller ej.