MySQL 6.0では新たなJOIN最適化手法であるBKA - Batched Key
Accessの実装が進んでいる。BKAとは、読んで字のごとくキーを用いたアクセスをバッチ(ひとまとまりの)処理にすることである。現在のバージョンのMySQLでは、2つのテーブルをJOINする際、一つ目のテーブルから選択した行に対して、逐一2つめのテーブルから行が一つずつフェッチされる。例えば次のクエリを用いてテーブルt1とt2をJOINする際には以下のような流れで行われる。
mysql> SELECT * FROM t1 LEFT JOIN t2 ON t1.a=t2.b WHERE t1.c
> 1000 AND t1.c <= 2000;
t1からWHERE句の条件(1000 < c <= 2000)に適合する行をフェッチする。
条件に合う行が1000行あったとする。
1行目のt1.aと同じt2.bの値を持つ行をt2からフェッチする。
…
1 件中 1 - 1 件を表示
Jan
08
2009
1 件中 1 - 1 件を表示