Re: JOIN vs. LEFT JOIN
От | Nico Callewaert |
---|---|
Тема | Re: JOIN vs. LEFT JOIN |
Дата | |
Msg-id | 2655E082C2C2460683342FA387FCEABB@etsinformatics.local обсуждение исходный текст |
Ответ на | JOIN vs. LEFT JOIN ("Nico Callewaert" <callewaert.nico@telenet.be>) |
Список | 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 по дате отправления: