From: | Dave Tenny <tenny(at)attbi(dot)com> |
---|---|
To: | Mario Weilguni <mweilguni(at)sime(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: IN list processing performance (yet again) |
Date: | 2003-05-28 18:17:21 |
Message-ID: | 3ED4FD31.5090804@attbi.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Mario Weilguni wrote:
>>My application relies heavily on IN lists. The lists are primarily
>>constant integers, so queries look like:
>>
>>SELECT val FROM table WHERE id IN (43, 49, 1001, 100002, ...)
>>
>>Performance is critical, and the size of these lists depends a lot on
>>how the larger 3-tier applicaiton is used,
>>but it wouldn't be out of the question to retrieve 3000-10000 items.
>>
>>PostgreSQL 7.3.2 seems to have a lot of trouble with large lists.
>>
>>
>
>you should rewrite your query if the query is created from an applition:
>
>SELECT val
> FROM table
> WHERE id between 43 and 100002
> AND id IN (43, 49, 1001, 100002, ...)
>
>where 43 is the min and 100002 the max of all values.
>
>I had this case with postgresql 7.2 and the planner made much smarter
>choices in my case.
>
>Regards,
> Mario Weilguni
>
>
Very interesting! I tried it out, but it didn't appreciably change the
thresholds in my results for going by for IN list
sizes 100 - 1000. It's also likely to be of use only if the range for
the between is fairly restricted,
which isn't necessarily characteristic of my data.
Dave
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Weilguni | 2003-05-28 18:29:43 | Re: IN list processing performance (yet again) |
Previous Message | Andrew Sullivan | 2003-05-28 18:14:03 | Re: >24 hour restore |