Re: Why is it not using an index?
От | Jean-Luc Lachance |
---|---|
Тема | Re: Why is it not using an index? |
Дата | |
Msg-id | 3C9258CB.B22E190A@nsd.ca обсуждение исходный текст |
Ответ на | Why is it not using an index? (Dmitry Tkach <dmitry@openratings.com>) |
Ответы |
Re: Why is it not using an index?
|
Список | pgsql-general |
Really, the PostgreSQL interpreter should be smart enough to figure this out by itself... Gregory Wood wrote: > > > explain select * from a where x=3; > > PostgreSQL is treating 3 as an int4 (integer) type, whereas x is an int2 > (smallint) type. Try casting the constant as a smallint and it should use > the index: > > explain select * from a where x=3::smallint; > > Greg > > ----- Original Message ----- > From: "Dmitry Tkach" <dmitry@openratings.com> > To: <pgsql-general@postgresql.org.pgsql-sql@postgresql.org> > Sent: Friday, March 15, 2002 2:07 PM > Subject: [GENERAL] Why is it not using an index? > > > This must be really simple, but I just can't get it :-( > > I have a table (a) with a single column (x): > > > > Table "a" > > Attribute | Type | Modifier > > -----------+----------+---------- > > x | smallint | > > Index: a_idx > > > > > > Index "a_idx" > > Attribute | Type > > -----------+---------- > > x | smallint > > btree > > > > The table has 10000000 rows.... > > > > Now, how come, when I do: > > > > explain select * from a where x=3; > > > > it says: > > > > Seq Scan on bset (cost=100000000.00..100175934.05 rows=303 width=2) > > > > Why is it not using a_idx??? > > > > I even tried set enable_seqscan to off - makes no difference :-( > > > > Any idea what is going on? > > > > Thanks a lot! > > > > Dima > > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 5: Have you checked our extensive FAQ? > > > > http://www.postgresql.org/users-lounge/docs/faq.html > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html
В списке pgsql-general по дате отправления: