ハッシュジョイン
結合アルゴリズムの一つ。小さい方のリレーションでハッシュテーブルを作り(ビルドフェーズ)、大きい方を走査して照合する(プローブフェーズ)。計算量はO(N+M)で、インデックスのない中〜大規模データの等価結合では最速になりやすい。
ハッシュテーブル分のメモリが必要。ビルド側がwork_mem(PostgreSQL)を超えるとディスクにあふれ(ハッシュスピル、マルチパス)、遅くなる。分析系ワークロード(データウェアハウス)で好まれる計画だ。アダプティブハッシュジョインは、まずメモリ内で始め、メモリ不足になるとディスクへ切り替える。対抗はネステッドループ(小規模かつインデックスありに強い)とマージジョイン(両側が整列済みなら強い)。PostgreSQLのプランナーは推定コストで選ぶ。範囲条件やあいまい一致のような非等価条件にハッシュジョインは使えない。