DB ハッシュ結合とは(動かして確認)

目次

ハッシュ結合とは(動かして確認)

ハッシュ結合とは、2つのテーブルを、結合キーのハッシュ値を使って高速に結び付ける方法です。

1.通常は、小さい方のテーブルを使ってハッシュ表を作ります。これを Build側 と呼びます。

2.もう片方のテーブルを1行ずつ読みます。こちらを Probe側 と呼びます。

ハッシュ結合では、片方だけがハッシュ計算されるわけではありません。両方でハッシュ計算します。ただ目的が違います。

Build側:ハッシュ計算してハッシュ表を作る
Probe側:ハッシュ計算してハッシュ表の場所を探す

 

動かして確認

以下のSQLを実行する場合です。

SELECT e.name, d.name
FROM emp e
JOIN dept d ON e.dept_id = d.dept_id

「1ステップ進む」をクリックすると動きます。




準備

dept(部署)— ビルド側

5行 / 小さい方

dept_id name

emp(社員)— プローブ側

5行 / 大きい方

emp_id name dept_id

ハッシュ表(メモリ上)

h(k) = (k ÷ 10) mod 4

結合結果

0行

ビルド側 / ハッシュ表
プローブ側
キー一致
← → キーでも操作できます

どんな場合に向いているか

ハッシュ結合は特に、 A.社員ID = B.社員IDのような等価結合(=)に向いています。

 A.金額 > B.金額のような範囲条件には基本的に向いていません。

関連の記事

DB ネステッドループ結合とは(動かして確認)

△上に戻る