Re: optimizing large query with IN (...)

From: "Marcus Andree S(dot) Magalhaes" <marcus(dot)magalhaes(at)vlinfo(dot)com(dot)br>
To: <scott(dot)marlowe(at)ihs(dot)com>
Cc: <marcus(dot)magalhaes(at)vlinfo(dot)com(dot)br>, <pgsql-performance(at)postgresql(dot)org>
Subject: Re: optimizing large query with IN (...)
Date: 2004-03-10 17:02:23
Message-ID: 63139.200.174.148.100.1078938143.squirrel@webmail.webnow.com.br
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance


Hmm... from the 'performance' point of view, since the data comes from
a quite complex select statement, Isn't it better/quicker to have this
select replaced by a select into and creating a temporary database?

> The problem, as I understand it, is that 7.4 introduced massive
> improvements in handling moderately large in() clauses, as long as they
> can fit in sort_mem, and are provided by a subselect.
>
> So, creating a temp table with all the values in it and using in() on
> the temp table may be a win:
>
> begin;
> create temp table t_ids(id int);
> insert into t_ids(id) values (123); <- repeat a few hundred times
> select * from maintable where id in (select id from t_ids);
> ...

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Steve Atkins 2004-03-10 17:11:04 Re: optimizing large query with IN (...)
Previous Message Tom Lane 2004-03-10 16:53:51 Re: syslog slowing the database?