From: | Reynard Hilman <reynardmh(at)lightsky(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: index not being used |
Date: | 2002-12-14 22:17:35 |
Message-ID: | 3DFBADFF.5020901@lightsky.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
you're right about the int8 Nigel,
select * from test_10million where id = 123::int8 and app_id = 100;
does solve the problem (only takes 2.88 msec).
I forgot to mention that I use different table for the 1 million records, and it does use int4, so that explains why index works for that table.
thanks,
- reynard
Nigel J. Andrews wrote:
>On Sat, 14 Dec 2002, Doug Fields wrote:
>
>
>>You're missing an analyze step: (see below)
>>
>>
>>>here is the table structure:
>>>create table test_10million (
>>>id int8,
>>>app_id int8
>>>);
>>>
>>>< fill the table with 10 million record >
>>>
>>>create index test_10million_id on test_10million (id);
>>>
>>>
>>ANALYZE test_10million;
>>
>>
>>>this query always uses sequential scan:
>>>select * from test_10million where id = 123 and app_id = 100;
>>>
>>>
>>Now try
>>
>>explain select * from test_10million where id = 123 and app_id = 100
>>
>
>Not forgetting of course that the numbers used in the tests will probably need
>to be cast to int8 or quoted to make into text constants before the index is
>used. I'm surprised the 1 million row test used the index. Unless this is in
>7.3 and the behaviour has changed (which I can't remember about).
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Egyud Csaba | 2002-12-14 22:53:50 | Re: Where are my tables physically in the fs? |
Previous Message | 2002-12-14 21:55:34 | Re: sourceforge move to DB2 |