Craig Ringer wrote:
Jesper Krogh wrote:

Hi.

I have this "message queue" table.. currently with 8m+ records. Picking the top priority messages seem to take quite long.. it is just a matter of searching the index.. (just as explain analyze tells me it does).

Can anyone digest further optimizations out of this output? (All records have funcid=4)

You mean all records of interest, right, not all records in the table?

Actually all the records.. since all the other virtual queues currently are empty.

What indexes do you have in place? What's the schema? Can you post a "\d tablename" from psql?

# explain analyze SELECT job.jobid, job.funcid, job.arg, job.uniqkey, job.insert_time, job.run_after, job.grabbed_until, job.priority, job.coalesce FROM workqueue.job WHERE (job.funcid = 4) AND (job.run_after <= 1208442668) AND (job.grabbed_until <= 1208442668) AND (job.coalesce = 'Efam') ORDER BY funcid, priority ASC LIMIT 1

I found that removing the funcid from the order by made it use a better index. (priority, run_after, grabbed_until) that probably makes sense since the funcid doesnt give any value in the index at all.

thanks for leading me back on track.

Jesper

--
Jesper

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to