Re: Indexes and sorting - Mailing list pgsql-general

From David Garamond
Subject Re: Indexes and sorting
Date
Msg-id 4023E9AC.6010407@zara.6.isreserved.com
Whole thread Raw
In response to Indexes and sorting  (John Siracusa <siracusa@mindspring.com>)
List pgsql-general
John Siracusa wrote:
>     SELECT * FROM t WHERE a = 1 AND b = 2 AND c = 3 ORDER BY b;
>
> Let's say the table just has one index:
>
>     CREATE INDEX b_idx ON t (b);
>
> In this case, obviously the b_idx will be used and no sorting after the fact
> will be required.  Now let's add an index:
>
>     CREATE INDEX key_idx ON t (a, b, c);
>
> On the same query, now the key_idx will be used and there'll be a sort
> wrapped around it all.  The question is, is the b_idx useful at all anymore?
> Can it be used to speed up the sort step?  If so, how?  If not, why not?

I believe that if you want to do ORDER BY b, then INDEX ON t(b) is
needed. Or ON t(b,c). If you want to ORDER BY a, then either INDEX ON
t(a) or ON t(a,b,c) or ON t(a,c) etc. is needed. See the manual on
CREATE INDEX for more details.

--
dave


pgsql-general by date:

Previous
From: David Garamond
Date:
Subject: Re: PL/Ruby
Next
From: "Joshua D. Drake"
Date:
Subject: Re: Run 2 versions of Postgresql on one machine?