Hi Richard-
My understanding is that Partial index is implemented for low
cardinality scenarios ('Y'/'N') ('T'/'F') (null/not null) ?
Would it matter the selectivity is
balanced?
thus 1 null record and 1 trillion null records
would not apply
? Martin-
----- Original Message -----
Sent: Sunday, March 16, 2008 10:25
AM
Subject: Re: how to make this
database / query faster
On Sat, Mar 15, 2008 at 5:04 PM,
brian <brian@xxxxxxxxxxxxxxxx> wrote:
As
there's an index on id would it be faster to transpose the
WHERE conditions?
WHERE id > your_last_id AND session_key IS
NOT NULL
I can't remember if the order of WHERE is
significant.
I don't think that the order of WHERE
clause conditions are significant with PostgreSQL since it has a sophisticated
planner. One way to be sure would be to examine the EXPLAIN plans for
different where clause ordering to see if the query plan changes depending
upon the order specified.
Another way to make this query faster would
be to create a partial index on id;
CREATE UNIQUE INDEX Partial_id
ON Users WHERE
session_key IS NOT NULL;
This index would be much smaller if there
are many session_keys that are null, so it should be loaded as searched much
faster.
|