タグ

INに関するlamichのブックマーク (2)

  • JOINが遅すぎて泣ける ― MySQLは漢(オトコ)のコンピュータ道? - 発火後忘失

    はじめての永続化、全2話中第2話、最終回です。第1話はこちら。サブタイトルに意味は無いです。 下のような関連を持つありがち、とはいかないまでも珍しくは無いクラス群をクエリしようと思いました。(クリックで拡大) Earthにいくつかのマスタデータがくっついているようなイメージです。ちなみにクラス名は適当につけているので意味はありません。 今回記載しているのはMySQL5.5です。MySQL5.1でも試しましたが、パフォーマンスは同程度でした(ただし後で述べますがEXPLAINの結果は若干変わっていました)。その他テストに使用したものは以下の通りです。 使用したソースコード(NetBeans7.0プロジェクト) 実行されるSELECT文(のうちメインとなるもの) 使用したテストデータ(mysqldump) テーブルのレコード数は、いずれも10件程度、カラムは主キーと外部キーのみです。 EXPL

    JOINが遅すぎて泣ける ― MySQLは漢(オトコ)のコンピュータ道? - 発火後忘失
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
  • 1