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

From Robert Haas
Subject Re: small table left outer join big table
Date
Msg-id AANLkTi=7=BP6fsHSO31C9x_RAFgSttXxac1vreYWdL6M@mail.gmail.com
Whole thread Raw
In response to small table left outer join big table  (Jie Li <jay23jack@gmail.com>)
Responses Re: small table left outer join big table  (Simon Riggs <simon@2ndQuadrant.com>)
Re: small table left outer join big table  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
On Tue, Dec 28, 2010 at 5:13 AM, Jie Li <jay23jack@gmail.com> wrote:
> Hi,
>
> Please see the following plan:
>
> postgres=# explain select * from small_table left outer join big_table using
> (id);
>                                  QUERY PLAN
> ----------------------------------------------------------------------------
>  Hash Left Join  (cost=126408.00..142436.98 rows=371 width=12)
>    Hash Cond: (small_table.id = big_table.id)
>    ->  Seq Scan on small_table  (cost=0.00..1.09 rows=9 width=8)
>    ->  Hash  (cost=59142.00..59142.00 rows=4100000 width=8)
>          ->  Seq Scan on big_table  (cost=0.00..59142.00 rows=4100000
> width=8)
> (5 rows)
>
> Here I have a puzzle, why not choose the small table to build hash table? It
> can avoid multiple batches thus save significant I/O cost, isn't it?

Yeah, you'd think.  Can you post a full reproducible test case?

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Why is sorting on two columns so slower thansortingon one column?
Next
From: Simon Riggs
Date:
Subject: Re: small table left outer join big table