地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

SQLのジョイン

  • ハッシュジョイン: 片側のテーブル(データベースが小さいと見積もられるテーブル)の結合キー項目で、メモリ上のハッシュテーブルにデータを格納する。もう片方のテーブルを読み込みながら、ハッシュテーブルと突き合わせる。ハッシュテーブルを作成する処理が前処理として必要がある。

  • ソートマージジョイン 両方のテーブルを事前に結合条件のキー項目でソートする。その後、マージ処理を行いながらキー項目を突き合わせて結合を実施する。両方のテーブルをソートするための前処理が必要である。また、テーブルが大きくてメモリに読み込めない場合は、一時ファイルなどに書き出される。キー項目にインデックスが付いている場合、インデックスを使ってテーブルを読み込むことでソートの代替とすることがある。