| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Neil Conway <neilc(at)samurai(dot)com> |
| Cc: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Planning large IN lists |
| Date: | 2007-05-10 18:53:28 |
| Message-ID: | 19001.1178823208@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Neil Conway <neilc(at)samurai(dot)com> writes:
> When planning queries with a large IN expression in the WHERE clause,
> the planner transforms the IN list into a scalar array expression. In
> clause_selectivity(), we estimate the selectivity of the ScalarArrayExpr
> by calling scalararraysel(), which in turn estimates the selectivity of
> *each* array element in order to determine the selectivity of the array
> expression as a whole.
> This is quite inefficient when the IN list is large.
That's the least of the problems. We really ought to convert such cases
into an IN (VALUES(...)) type of query, since often repeated indexscans
aren't the best implementation.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dann Corbit | 2007-05-10 19:51:40 | Re: Planning large IN lists |
| Previous Message | Lukas Kahwe Smith | 2007-05-10 18:42:40 | Re: Planning large IN lists |