"John Surcombe" <John.Surcombe@xxxxxxxxxx> writes: > When we 'EXPLAIN' this query, PostgreSQL says it is using the index > idx_receiveddatetime. The way the application is designed means that in > virtually all cases the query will have to scan a very long way into > idx_receiveddatetime to find the first record where userid = 311369000. > If however we delete the idx_receiveddatetime index, the query uses the > idx_userid_receiveddatetime index, and the query only takes a few > milliseconds. That's just bizarre ... it knows the index is applicable, and the cost estimates clearly favor the better index, so why did it pick the worse one? I tried to duplicate this locally, without success, so there's some contributing factor you've neglected to mention. Can you put together a self-contained test case that acts like this? regards, tom lane -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance