Re: Query is not using index when it should
От | Stephan Szabo |
---|---|
Тема | Re: Query is not using index when it should |
Дата | |
Msg-id | 20041210182453.G92467@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | Query is not using index when it should (tomas@nocrew.org (Tomas Skäre)) |
Ответы |
Re: Query is not using index when it should
|
Список | pgsql-general |
On Fri, 10 Dec 2004, Tomas [iso-8859-1] Sk�re wrote: > I have a table that looks like this: > > Table "public.cjm_object" > Column | Type | Modifiers > -----------+-------------------+----------- > timestamp | bigint | not null > jobid | bigint | not null > objectid | bigint | not null > class | integer | not null > field | character varying | not null In 7.4.x and earlier, you need to cast the value you're comparing to into a bigint in order to make sure the indexes are used (in your timestamp case it appears to work because the value doesn't fit in a plain integer). 8.0 should handle this better. > But when doing a search with objectid, class and field, it doesn't use > the idx_cjm_object1 index. > db=# explain analyze select * from cjm_object where objectid=4534 and class=12 and field='paroid'; Using one of objectid=4534::bigint objectid='4534' objectid=CAST(4534 as bigint) rather than objectid=4534 should make this indexable in 7.4.x.
В списке pgsql-general по дате отправления: