Tom Lane <t...@sss.pgh.pa.us> writes:
>I'm assuming your problem
>query involved a join on the indexed column --- whether or not the
>final plan did a mergejoin, the planner would consider this

There's no join -- the query is

SELECT  "notifications".*
FROM "notifications"
WHERE "notifications"."person_id" = ? AND
  "notifications"."app_category" = ? AND
  (id > ?)
ORDER BY created_at DESC
LIMIT ?

And the whole query plan is one step:

Index Scan using index_notifications_on_person_id_and_created_at on
notifications (cost=0.57..212.16 rows=52 width=231)

>Subsequent vacuuming would eventually delete the dead index entries
>and return things to normal; although usually the performance comes
>back all-of-a-sudden at the next (auto)VACUUM of the table.   So I'm
>a bit intrigued by your seeing it "gradually" improve.  Maybe you
>had old open transactions that were limiting VACUUM's ability to
>remove rows?'

We shouldn't have any long-running transactions at all, certainly not open
for a couple of hours.

Thanks,
Walter

Reply via email to