ハッシュ結合 【hash join】
概要
ハッシュ結合(hash join)とは、リレーショナルデータベース(RDB)でテーブルの結合(JOIN)処理を行うアルゴリズムの一つで、一方のテーブルの比較対象の列の値からハッシュテーブルを作り、もう一方のテーブルの列の値で探索する手法。RDBでは同じ意味の列を持つテーブル同士をSQLのJOIN句などを用いて結合し、一つのテーブルにまとめる処理がよく行われる。ハッシュ結合は結合処理を行う手順の一つである。
まず片方のテーブルの比較対象に指定された列の値からハッシュ値を求め、ハッシュ値から対応する行を引き出すことができるハッシュテーブルを作成する。次に、もう一方のテーブルを先頭から順に走査し、比較対象列の値から同じようにハッシュ値を算出し、ハッシュテーブルを参照して対応する行があれば結合する。
比較に先立ってソート処理などが不要なため、結合条件が等価条件(一致)の場合は高速に結合することができる。等価条件以外の結合条件(以上、未満など)が指定されるとハッシュ結合は使用できないため、ソートマージ結合など他の方式が用いられる。
(2021.12.8更新)