タグ

MySQLとexplainに関するmiguchiのブックマーク (2)

  • InnoDBのプライマリキーとセカンダリキー | Yakst

    InnoDBのテーブルから、プライマリキーを取得するクエリを書いたのに、なぜかセカンダリインデックスが使われることがある。この仕組みを、InnoDBのインデックスの格納方法から解説する。 今日、EXPLAINの結果を色々と試してみている時に、興味深い問題にぶち当たったので、ドキュメントには載っていないこの現象をここで共有しておこう。 とても単純なInnoDBのテーブルを考えるところから始めよう。2つのINT型のカラムを持ち、最初のカラムがプライマリキーで、2番目のカラムに普通のインデックスが張ってある。 CREATE TABLE `t1` ( `id1` int(10) unsigned NOT NULL, `id2` int(10) unsigned DEFAULT NULL, PRIMARY KEY (`id1`), KEY `id2` (`id2`) ) ENGINE=InnoDB;

    InnoDBのプライマリキーとセカンダリキー | Yakst
  • GitHub - KLab/myslowexplain

    MySQLのチューニングに欠かすことができない slow_log と explain ですが、 膨大な slow_log の中から怪しそうなクエリを探しだして explainをかける というのは結構手間がかかりめんどくさいものです。 myslowexplainは、slow_logに記録されたクエリに対してexplainを実行し、 結果を表示するpythonスクリプトです。 結果はこんな感じで表示されます。 =================================================== last: 2012-07-30 18:03:23 # 最後に発行された時刻 qtime: 0:00:00 # 実行にかかった最大時間 count: 3 # slow_logに出現した回数 query: SELECT COUNT(*) FROM `guild_message_board

    GitHub - KLab/myslowexplain
  • 1