Re: query not using index for descending records? - Mailing list pgsql-sql

From Bruno Wolff III
Subject Re: query not using index for descending records?
Date
Msg-id 20040129131847.GE17068@wolff.to
Whole thread Raw
In response to query not using index for descending records?  ("email lists" <lists@darrenmackay.com>)
Responses Re: query not using index for descending records?
List pgsql-sql
On Thu, Jan 29, 2004 at 22:18:08 +1000, email lists <lists@darrenmackay.com> wrote:
>  Limit  (cost=0.00..2.31 rows=20 width=12)
>    ->  Index Scan using idx_trafficlogs_datetime_id on trafficlogs
> (cost=0.00..1057.89 rows=9172 width=12)
> (2 rows)
> 
> however, I am wanting to return the last 20 records. I have been using:
> 
> explain select datetime,id from trafficlogs order by datetime,id desc
> limit 20;

You probably don't want to do that. The DESC only applies to the one
expression it follows. What you want is probably:
explain select datetime,id from trafficlogs order by datetime desc,id desc
limit 20;

The index won't get used because with id and datetime being checked in
different orders, only the first part of the index is usable. And probably
that wasn't selective enough for an index scan to be used.


pgsql-sql by date:

Previous
From: "Viorel Dragomir"
Date:
Subject: Re:
Next
From: Achilleus Mantzios
Date:
Subject: Re: query not using index for descending records?