Re: Why is this query running slowly?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Why is this query running slowly?
Дата
Msg-id 10696.1316096777@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Why is this query running slowly?  (Yang Zhang <yanghatespam@gmail.com>)
Ответы Re: Why is this query running slowly?
Список pgsql-general
Yang Zhang <yanghatespam@gmail.com> writes:
> On Thu, Sep 15, 2011 at 1:22 AM, Tomas Vondra <tv@fuzzy.cz> wrote:
>> [ use a left join instead of NOT IN ]

> This worked great, thank you.  Too bad the planner isn't smart enough
> to do this yet!

It never will be, because they're not equivalent queries.  NOT IN has
different (and very hard-to-optimize) behavior in the face of NULLs in
the right-hand table.

The moral of the story is avoid NOT IN.  You could use NOT EXISTS,
which is less of a notational change than recasting as a left join.

            regards, tom lane

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

Предыдущее
От: Harald Fuchs
Дата:
Сообщение: Re: Bit datatype performance?
Следующее
От: Harald Fuchs
Дата:
Сообщение: PostgreSQL 9.1.0 bug?