Thanks all for your help.  I didn't really understand why it was sorting on
every field, but it now makes sense.  What I ended up doing was replacing
the

SELECT DISTINCT * FROM .... JOIN ... WHERE ... ORDER BY... LIMIT ...
with

SELECT * FROM ... WHERE id in (SELECT DISTINCT id FROM .... JOIN ... WHERE
... ) ORDER BY... LIMIT ...
This reduced the lookup time down to 19 ms, which is much faster than just
upping the work_mem, as that still took 800ms

Thanks all,
Mason

On Fri, Sep 10, 2010 at 7:03 PM, Stephen Frost <sfr...@snowman.net> wrote:

> * Tom Lane (t...@sss.pgh.pa.us) wrote:
> > The reason it's sorting by all the columns is the DISTINCT
>
> You might also verify that you actually need/*should* have the DISTINCT,
> if it's included today..  Often developers put that in without
> understanding why they're getting dups (which can often be due to
> missing pieces from the JOIN clause or misunderstanding of the database
> schema...).
>
>        Stephen
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkyK43kACgkQrzgMPqB3kihX4ACfVboO4jRzFO3hkckdHfrSeAgF
> sysAnjmeoV7BA7uClEY8gXT4nEYhSx0u
> =y556
> -----END PGP SIGNATURE-----
>
>

Reply via email to