ハッシュ結合
オプティマイザ
が見積もった小さい
テーブル
の
結合
対象となる
行
を全件読み込む.
結合キー
を
ハッシュ関数
にかけて
ハッシュテーブル
として
メモリ
上に乗せる.
大きい
テーブル
の
結合
対象となる
行
を読み込み,
結合キー
を
ハッシュ関数
にかけて
ハッシュテーブル
と突き合わせていく.
CBO
でのみ利用可能で,
RBO
では利用できない.
等価結合
にのみ適用可能.
小さい
テーブル
を全件読み込んで
ハッシュテーブル
を作るまで最初の1件も返すことができない.
多段
結合
では
ハッシュテーブル
をたくさん作る必要があるため,
メモリ
を圧迫する.
MySQL
では
MySQL 8.0
から利用可能になった.
http://www.doppo1.net/oracle/tuning/hash-join.html