MAPJOINメモ
table_m : 10000件
table_a : 1000件
table_b : 1000件
select count(*) from table_m m
join table_a a on (m.link1=a.id)
join table_b b on (m.link2=b.id)
Time taken: 42.128 seconds
- MapJoin
メモリにハッシュテーブルを持ってMapフェーズのみでJoinをしてくれる
select / *+ MAPJOIN(table_a,table_b) */ count(*)
from table_m m
join table_a a on (m.link1=a.id)
join table_b b on (m.link2=b.id)
--result
Time taken: 27.502 seconds
環境変数を設定することで
指定サイズまでのテーブルは自動でMapJoinしてくれる
set hive.auto.convert.join=true;
set hive.smalltable.filesize=10000;
MySQL :: MySQL 4.1 リファレンスマニュアル :: 5.2.8 MySQL による ORDER BY の最適化