| From: | Steve Atkins <steve(at)blighty(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Specifying many rows in a table |
| Date: | 2004-01-28 19:32:22 |
| Message-ID: | 20040128193222.GA3502@gp.word-to-the-wise.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
I have a large table (potentially tens or hundreds of millions of rows) and
I need to extract some number of these rows, defined by an integer primary
key.
So, the obvious answer is
select * from table where id in (1,3,4);
But I may want to extract a large number of rows, many thousands
select * from table where id in (1, 3, 5, ...., 100000, 100017, 23000);
This falls over when it exceeds the maximum expression depth of 10,000.
And I have a sneaky feeling that increasing max_expr_depth isn't the
right fix.
Performance is pretty important, so does anyone have a good suggestion
for how to phrase this query so that it'll at worst only be a single
seq-scan through the mondo table, and make a reasonable choice as to
whether to use an index-scan or seq-scan, depending on the number
of rows I'm pulling out?
Cheers,
Steve
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2004-01-28 19:47:38 | Re: 7.3.4 freezing |
| Previous Message | scott.marlowe | 2004-01-28 18:54:51 | Re: 7.3.4 freezing |