Re: JOIN vs. LEFT JOIN - Mailing list pgsql-novice

From Nico Callewaert
Subject Re: JOIN vs. LEFT JOIN
Date
Msg-id 2655E082C2C2460683342FA387FCEABB@etsinformatics.local
Whole thread Raw
In response to JOIN vs. LEFT JOIN  ("Nico Callewaert" <callewaert.nico@telenet.be>)
List pgsql-novice
Thanks a lot Tom for explaining !


----- Original Message -----
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Obe, Regina" <robe.dnd@cityofboston.gov>
Cc: "Nico Callewaert" <callewaert.nico@telenet.be>; "Andreas Wenk"
<a.wenk@netzmeister-st-pauli.de>; <pgsql-novice@postgresql.org>
Sent: Wednesday, January 28, 2009 5:49 PM
Subject: Re: [NOVICE] JOIN vs. LEFT JOIN


> "Obe, Regina" <robe.dnd@cityofboston.gov> writes:
>> So in terms of performance
>
>> [INNER] JOIN -- fastest
>> LEFT JOIN -- generally slower (but there really is no alternative if you
>> don't want to leave out records  without matches
>
> This is nonsense.  A left join is not inherently slower than an inner
> join.
>
> What *is* true is that a left join constrains the optimizer more than an
> inner join, ie some join reorderings are allowed for inner joins but
> would change the answers if an outer join is involved.  So in the
> context of a specific query you might get a slower plan if you use a
> left join.  But you can't say that as a blanket statement.  In a lot
> of cases there won't be any difference at all (particularly with more
> recent PG versions --- our optimizer has gotten smarter about outer
> joins over time).
>
>> FULL JOIN -- rarely used and slower than INNER, LEFT, RIGHT, but it
>> comes in handy at times.
>
> Likewise, a full join isn't necessarily slow in itself, but it
> constrains the possible plans quite a lot.
>
> regards, tom lane
>
>



pgsql-novice by date:

Previous
From: Tom Lane
Date:
Subject: Re: UUId or Similar
Next
From: Rebecca Jones
Date:
Subject: REALLY stupid question