Thread: index question

index question

From
Joseph Shraibman
Date:
Lets say I have a table with columns a and b.  I want to do a query like
SELECT count(distinct b) WHERE a = 2;

Should I have an index on a or an index on (a,b)?

-- 
Joseph Shraibman
jks@selectacast.net
Increase signal to noise ratio.  http://www.targabot.com



Re: index question

From
Tom Lane
Date:
Joseph Shraibman <jks@selectacast.net> writes:
> Lets say I have a table with columns a and b.  I want to do a query like
> SELECT count(distinct b) WHERE a = 2;

> Should I have an index on a or an index on (a,b)?

At present, only an index on a will help any.  Our implementation of
count(distinct ...) isn't bright enough to make use of indexes.

Now an index on (a,b) can substitute for an index on a, so if you
have other queries that could use both columns of the (a,b) index
then it might be worth making that instead of an index on a.
        regards, tom lane