Re: Message queue table..
От | Jesper Krogh |
---|---|
Тема | Re: Message queue table.. |
Дата | |
Msg-id | 4808F51D.40102@krogh.cc обсуждение исходный текст |
Ответ на | Re: Message queue table.. (Craig Ringer <craig@postnewspapers.com.au>) |
Список | pgsql-performance |
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
В списке pgsql-performance по дате отправления: