adding 'limit' leads to very slow query

From: "Michael McFarland" <sidlonDoesntLikeSpam(at)yahoo(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: adding 'limit' leads to very slow query
Date: 2005-03-07 23:39:43
Message-ID: opsnaj0hctsvs6tg@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

I'm trying to understand why a particular query is slow, and it seems
like the optimizer is choosing a strange plan. See this summary:

* I have a large table, with an index on the primary key 'id' and on a
field 'foo'.
> select count(*) from foo;
1,000,000
> select count(*) from foo where bar = 41;
7

* This query happens very quickly.
> explain select * from foo where barId = 412 order by id desc;
Sort ()
Sort key= id
-> Index scan using bar_index on foo ()
Index cond: barId = 412

But this query takes forever

> explain select * from foo where barId = 412 order by id desc limit 25;
Limit ()
-> Index scan backward using primarykey_index
Filter: barID = 412

Could anyone shed some light on what might be happening here?

- Michael

--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message jesse d 2005-03-07 23:54:08 Help with slow running query
Previous Message Greg Stark 2005-03-07 23:15:29 Re: [PERFORM] Help with tuning this query (with