=?ISO-8859-1?Q?Poul_M=F8ller_Hansen?= <[EMAIL PROTECTED]> writes:
> explain analyze SELECT * FROM my.table WHERE node = '10' ORDER BY node, 
> id DESC LIMIT 1
>                                                                  QUERY 
> PLAN                                                                
> --------------------------------------------------------------------------------------------------------------------------------------------
>  Limit  (cost=22638.36..22638.36 rows=1 width=246) (actual 
> time=3.001..3.007 rows=1 loops=1)
>    ->  Sort  (cost=22638.36..22652.59 rows=5691 width=246) (actual 
> time=2.984..2.984 rows=1 loops=1)
>          Sort Key: node, id
>          ->  Index Scan using node_date on table  (cost=0.00..21898.65 
> rows=5691 width=246) (actual time=0.077..1.852 rows=62 loops=1)
>                Index Cond: ((node)::text = '10'::text)
>  Total runtime: 3.127 ms

You're not there yet: you want what Richard said, namely

explain analyze SELECT * FROM my.table WHERE node = '10' ORDER BY node DESC, 
id DESC LIMIT 1

There shouldn't be any Sort in the plan, just the indexscan and Limit.
The plan above is going to suck if there are a lot of rows with node = '10'.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to