Re: improve 'where not exists' query..

Поиск
Список
Период
Сортировка
От Bruno Wolff III
Тема Re: improve 'where not exists' query..
Дата
Msg-id 20051026195649.GA4521@wolff.to
обсуждение исходный текст
Ответ на Re: improve 'where not exists' query..  (Noel Whelan <noel.whelan@gmail.com>)
Список pgsql-general
On Wed, Oct 26, 2005 at 12:58:26 -0500,
  Noel Whelan <noel.whelan@gmail.com> wrote:
> I've done an explain analyze - nothing looks wrong to me. I'm thinking it's
> not exactly an issue with the query itself; it's just an inefficient thing I
> want to do (essentially, for each id in the one table, identify whether or
> not one exists in the other table).
>  Current installation is 7.3.4; but I'll look into NOT IN in case that would
> be an improvement. Thanks,
>  - Noel

I am pretty sure the speed up for NOT IN was after 7.3 so that isn't likely to
help. You probably should try the outer join suggestion in that case.

You should probably also seriously consider upgrading. There have been a number
of performance enhancing changes since 7.3.

>
>  On 10/26/05, Bruno Wolff III <bruno@wolff.to> wrote:
> >
> > On Tue, Oct 25, 2005 at 15:46:52 -0500,
> > Noel Whelan <noel.whelan@gmail.com> wrote:
> > > I'm wondering if there's an ideal way to improve the efficiency of this
> > > query:
> > >
> > > SELECT i.id <http://i.id> <http://i.id> FROM items i
> > > WHERE (NOT (EXISTS (SELECT c.id <http://c.id> <http://c.id>
> > > FROM contacts c WHERE (c.id <http://c.id> <http://c.id> = i.id<http://i.id><
> > http://i.id>))));
> > >
> > > It takes a while to execute, clearly. Thank you,
> >
> > On recent versions of postgres, NOT IN is potentially faster.
> >
> > Have you looked at EXPLAIN ANALYZE output to see if anything looks amiss?
> >

В списке pgsql-general по дате отправления:

Предыдущее
От: Claire McLister
Дата:
Сообщение: Re: Map of Postgresql Users (OT)
Следующее
От: "Keith C. Perry"
Дата:
Сообщение: Re: Why database is corrupted after re-booting