はてなブックマークの人気エントリで「SQLを使うなら理解しておきたいアルゴリズム?…」という記事を眺めていて、実際にSQLのアルゴリズムを説明するにはどうすればよいか考えてみました。そこで、試しにSQLの実行計画をJavaで再現してみることにしました。 今回は索引アクセスとテーブル結合に関する7種類のSQLについて、MySQLのEXPLAIN結果とそれに対応するJavaのコードを記述しました。EXPLAINの読み方を言葉で説明するのは非常に難しいのですが、プログラムを読める方ならこうした説明が一番分かりやすいのではないでしょうか。 import java.util.ArrayList; import java.util.List; import java.util.SortedMap; import java.util.TreeMap; public class Study { publi