From: | "Steinar H(dot) Gunderson" <sgunderson(at)bigfoot(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Simple query: how to optimize |
Date: | 2005-10-29 00:12:24 |
Message-ID: | 20051029001224.GA6611@uio.no |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Fri, Oct 28, 2005 at 03:40:40PM -0700, Roger Hand wrote:
> You're first joining against the entire user table, then filtering out the users
> you don't need.
That's just wrong, sorry -- the planner is perfectly able to push the WHERE
down before the join.
I'd guess the problem is the age() query; age() doesn't really return what
you'd expect, and I don't think it can use an index easily (I might be wrong
here, though). Instead, try something like
WHERE u.joined_date >= current_date - interval '30 days'
except that if you're running pre-8.0, you might want to precalculate the
right-hand side on the client.
I couldn't see EXPLAIN ANALYZE of your query, BTW -- having it would be
useful.
/* Steinar */
--
Homepage: http://www.sesse.net/
From | Date | Subject | |
---|---|---|---|
Next Message | PostgreSQL | 2005-10-29 00:37:11 | Re: Simple query: how to optimize |
Previous Message | Collin Peters | 2005-10-29 00:04:32 | Re: Simple query: how to optimize |