Re: small table left outer join big table - Mailing list pgsql-hackers

From Li Jie
Subject Re: small table left outer join big table
Date
Msg-id 006d01cba76a$f5190260$0801a8c0@A0078508
Whole thread Raw
In response to small table left outer join big table  (Jie Li <jay23jack@gmail.com>)
List pgsql-hackers
----- Original Message ----- 
From: "Tom Lane" <tgl@sss.pgh.pa.us>
To: "Robert Haas" <robertmhaas@gmail.com>
Cc: "Simon Riggs" <simon@2ndquadrant.com>; "Jie Li" <jay23jack@gmail.com>; "pgsql-hackers"
<pgsql-hackers@postgresql.org>
Sent: Wednesday, December 29, 2010 10:59 PM
Subject: Re: [HACKERS] small table left outer join big table 


> Robert Haas <robertmhaas@gmail.com> writes:
>> On Wed, Dec 29, 2010 at 7:34 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
>>> It's not a bug, that's the way it currently works. We don't need a test
>>> case for that.
> 
>> Oh, you're right.  I missed the fact that it's a left join.
> 
> The only thing that struck me as curious about it was that the OP didn't
> get a nestloop-with-inner-indexscan plan.  That would be explainable if
> there was no index on the large table's "id" column ... but columns
> named like that usually have indexes.
> 
> I can't get all *that* excited about complicating hash joins as
> proposed.  The query is still fundamentally going to be slow because
> you won't get out of having to seqscan the large table.  The only way
> to make it really fast is to not read all of the large table, and
> nestloop-with-inner-indexscan is the only plan type with a hope of
> doing that.
> 
> regards, tom lane

Yes there is no index on the joined column, otherwise nestloop-with-inner-indexscan should be preferred.

But why can't outer join be as clever as inner join? Anyway, if we unfortunately don't have available index, we have no
choicebut rely on hash join, right?
 

Thanks,
Li Jie

pgsql-hackers by date:

Previous
From: "Li Jie"
Date:
Subject: Re: small table left outer join big table
Next
From: Tom Lane
Date:
Subject: Re: Avoiding rewrite in ALTER TABLE ALTER TYPE