データベースのテーブル結合アルゴリズムを調べた

一行づつ、全てのキーとチェックをかけて同じかチェックするよ

  • ソートマージ

2つのテーブルをソートしてからチェックするのでキーの比較回数少ないよ

分散DB前提。キーをリモートホストに送信して部分的な結合結果を受け取って、その結果を基に最終的な結合結果を計算するよ。データの転送量減るよ


理解のために簡単にそれっぽい動作をpythonで実装してみた


MySQLOracleなどで結合にどんなアルゴリズムを使っているのかは、クエリプランを見るとわかるらしい。
sqlite3は内部結合はwhere句に単純に展開されるらしかった。
http://www.sqlite.org/optoverview.html