Re: Join efficiency

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Join efficiency
Дата
Msg-id 4135BFFD.7060205@archonet.com
обсуждение исходный текст
Ответ на Join efficiency  ("Russ Brown" <postgres@dot4dot.plus.com>)
Ответы Re: Join efficiency
Список pgsql-general
Russ Brown wrote:
>
> I have always written queries with ordinary joins in this manner:
>
> SELECT * FROM a, b WHERE a.x=b.x;
>
> However I recently saw an laternative syntax:
>
> SELECT * FROM a JOIN b ON a.x=b.x;
>
> Is there any difference between these queries in terms of the speed of
> planning or the quality of the plan untimately used? I'd imagine that
> the  second form provides more information that the planner may be able
> to use  to make a better plan (or make a good plan more easily), but
> I've never  had any problems with the first form.

The first form allows PG to plan however it sees fit. The second will
force the join order to be the same as you specify in the query. This
doesn't matter here, but might with a more complicated query.

With v7.4 and higher, I believe this join forcing is configurable
(join_collapse_limit).

> It also seems to me that the second form is more self-documenting,
> which  is something I'm always in favour of.

I tend to prefer the WHERE form, but that might just be me.

--
   Richard Huxton
   Archonet Ltd

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

Предыдущее
От: "Russ Brown"
Дата:
Сообщение: ...
Следующее
От: John Sidney-Woollett
Дата:
Сообщение: Re: Join efficiency