From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
---|---|
To: | Michael Paesold <mpaesold(at)gmx(dot)at> |
Cc: | Shane|SkinnyCorp <shanew(at)skinnycorp(dot)com>, PgSQL ADMIN <pgsql-admin(at)postgresql(dot)org> |
Subject: | Re: PLEASE GOD HELP US! |
Date: | 2004-10-01 21:42:58 |
Message-ID: | 20041001144100.E67126@megazone.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
On Fri, 1 Oct 2004, Michael Paesold wrote:
> Shane | SkinnyCorp wrote:
>
> > Okay, just so no one posts about this again...
> >
> > the 'ORDER BY t.status=5,lastreply' clause is meant to float the threads
> > with a status of '5' to the top of the list... it is NOT meant to only
> > grab
> > threads where the status = 5. Oh and believe me, when I take this out of
> > the query, it CERTAINLY doesn't add any more than possible 1/4 of a
> > millesecond to the speed of the SELECT statement.
> >
> > :/
>
> Perhaps I missed it, but you did not yet send the output of the explain of
> this query, did you?
>
> Could you please do:
>
> EXPLAIN SELECT * FROM thread_listing AS t ORDER BY t.status=5 DESC,
> t.lastreply DESC LIMIT 25 OFFSET 0;
>
> EXPLAIN SELECT * FROM thread_listing AS t WHERE t.status=5 ORDER BY
> t.lastreply DESC LIMIT 25 OFFSET 0;
>
> EXPLAIN SELECT * FROM thread_listing AS t ORDER BY t.lastreply DESC LIMIT 25
> OFFSET 0;
>
> (and post the results here)
>
> The first one will certainly do a sequential scan, the last one will use an
> index if available. For the second you will need a partial index on
> lastreply with a where clause WHERE status=5, I believe. So a solution would
Actually, I think he'd want an expression index on ((status=5),lastreply).
In simple tests (admittedly on 8.0b3) it looks like such an index can be
used rather than a separate sort step.
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Crawford | 2004-10-01 21:47:01 | Re: PLEASE GOD HELP US! |
Previous Message | Igor Maciel Macaubas | 2004-10-01 21:28:57 | Re: Does PostgreSQL Stores its database in multiple disks? |