この記事は、合併前の旧ブログに掲載していた記事(初出:2018年8月20日)を、現在のブログへ移管したものです。現時点の情報に合わせ、表記やリンクの調整を行っています。
開発3センターでサーバサイドの開発を行っている大原(@kory1202)です。
私の部署ではLINEポイントの開発を行っています。
先日、あるテーブルからデータを抽出するコードを書いていたら先輩に「こういうインデックスが必要だよね。」と言われてインデックスについて知識が浅いことに気づかされました。そこで今回はインデックスについて MySQL Workbench の VISUAL EXPLAIN を使いながら勉強した内容を記事にしました。 VISUAL EXPLAIN は SQL の EXPLAIN を図で表示してくれるので、直感的にどの部分が悪いのか、インデックスを導入した時にどの処理が改善されるのかが直感的に分かるので非常にオススメです。
今回は MySQL 5.6 の InnoDB について話します。実験に使った OS は macOS High Sierra 10.13.4 です。以下目次。
- インデックスの基礎
- インデックスの構造
- インデックスの使われ方
- MySQL Workbench と VISUAL EXPLAIN
- VISUAL EXPLAIN 実行方法
- VISUAL EXPLAIN の色とテーブル図形のテキストの説明ちょっとだけ
- VISUAL EXPLAIN でインデックスの挙動を確かめる(本題)
- インデックスなし(簡単に VISUAL EXPLAIN の見方)
- WHERE の条件にインデックス
- ORDER BY の条件にインデックス
- GROUP BY の条件にインデックス
- 複合インデックス
- 練習:もっと複雑な例
- 最後に