タグ

MySQLとSQLに関するkiki114のブックマーク (2)

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

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

    なぜMySQLのサブクエリは遅いのか。
  • MySQLお勉強メモ(SQLチューニング編) | きぬろぐ

    MySQLお勉強メモ(SQLチューニング編)です。 EXPLAIN 概要 EXPLAINを利用し、SQLのアクセスパスを確認できる。 SELECTには対応しているが、DELETE/UPDATEには対応していない。実行する場合はDELETE/UPDATEをSELECTに置き換えること。 実行結果 重要なのは、type, key, rows, Extraの部分 mysql> explain select link_id from wp_links where link_id = '1'\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: wp_links type: const possible_keys: PRIMARY key: PRIMARY k

  • 1