前回はNested Loop Join(以下NLJ)の原理とオプティマイザの挙動を大まかに説明した。NLJは非常に高速なJOINアルゴリズムなので普段はNLJだけでも困らないのだが、内部表へのアクセスにインデックスを使えない場合には必ずしも最適なアルゴリズムであるとは言えない。この問題に対して、MySQLはNLJの改良版である、Block Nested Loop Joinを実装しているので、本稿ではまずこのアルゴリズムについて紹介する。次に、内部表へのアクセスにインデックスを用いている場合でもさらに高速化の可能性がある、Batched Key Access Joinについても解説しよう。こちらは最新の開発版であるMySQL 5.6.3 m6で追加された機能である。
この記事は参考になりましたか?
- この記事の著者
-
奥野 幹也 (オクノ ミキヤ)
日本オラクル株式会社
MySQL Global Business Unitテクニカルアナリスト※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア