タグ

2014年7月8日のブックマーク (2件)

  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • SQL講座 INNER JOINを使った表の結合

    副問い合わせの中に相関副問い合わせという方法がある。これは、主問い合わせの結果をチェックするというものである。 副問い合わせではWHERE句で指定されたSELECT文の実行結果を元に主問い合わせを実行した。 それに対して、相関副問い合わせでは主問い合わせの表の1行ごとに副問い合わせを実行する。 そして、EXISTSを指定された副問い合わせでは、主問い合わせで指定されたデータが存在すれば真を返し、存在しなければ偽を返す。真の行だけが抽出される。 まず、準備としてEXISTS述語を指定したSELECT文の実行結果が分かりやすいように商品表に次の2つの行を追加する。 EXISTS述語の記述形式は以下のとおりである。 << 記述形式 >> 《例題1》 売上のあった商品名を抽出する。売上のあった商品とは、売上明細に存在する商品のことである。つまり、商品表の商品のうち売上明細に存在する商品を抽出すれば