最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。
今回まとめた記事を読んで、大体以下のことが理解できました。
まず最初に
Webエンジニアのための データベース技術[実践]入門 (Software Design plus)
posted with amazlet at 12.06.02
松信さんの書いた「Webエンジニアのためのデータベース技術[実践]入門」はMySQLの勘所について非常によくまとまっていたので、下に書く記事を読む前にさらっと読んでおくと理解が深まると思います。
さらにDeNA開発ブログに書いてある「ソーシャルゲームのためのMySQL入門」を読んでおくと、実践での勘所がなんとなく分かるような気がします。
インデックスの使われ方とその構造(MyISAMとInnoDB)
- MySQLパフォーマンスチューニングのためのインデックスの基礎知識 - 久保清隆のブログ
- インデックスの基本的な使い方などがまとまっています。MySQLの内部の構造の話には踏み込んでいないです。とりあえずインデックスについてよく分かっていないのであれば読むといいと思いました。
- 2011-12-17
- kazeburoさんのCovering Index と self-join と MySQL - blog.nomadscafe.jpの記事を基本としてインデックスの基本的な構造を解説した記事。これを読むと、どうしてインデックスが使われる時と使われない時があるのかとか、マルチカラムのセカンダリインデックスはどうしてその順序どおりカラムを指定しないとインデックスをうまく使えないのか、などが分かると思います。
- MySQLでインデックスを使って高速化するならCovering Indexが使えそう - (゚∀゚)o彡 sasata299's blog
- InnoDBの簡単なインデックスの構造を説明した上で、Covering Indexのことについて書かれています。
- 漢(オトコ)のコンピュータ道: 知って得するInnoDBセカンダリインデックス活用術!
- 漢(オトコ)のコンピュータ道: InnoDBでCOUNT()を扱う際の注意事項あれこれ。
- COUNT(*)の動作の説明。インデックスの参考にもなります。
EXPLAINの詳しい使い方、見方
- 漢(オトコ)のコンピュータ道: MySQLのEXPLAINを徹底解説!!
- EXPLAINの解説記事はこの記事だけでいいと思います。なぜなら、非常にうまくまとまっているということと、これまでのIndexの解説記事を読むとなぜそのような表示が出るのかということをさらっと理解できるためです。
InnoDBの特性
- 漢(オトコ)のコンピュータ道: 大人のためのInnoDBテーブルとの正しい付き合い方。
- InnoDBの扱い方についてまとまっています。
ALTER TABLEの特性
- 漢(オトコ)のコンピュータ道: ALTER TABLEを上手に使いこなそう。
- ALTER TABLEを実行した時の動作についての解説。ALTER TABLEを実行するには2倍の容量が必要とか、高速化するにはどうしたらよいかとか、非常に参考になることが多いです。
レプリ遅延
- 漢(オトコ)のコンピュータ道: MySQLにおけるレプリケーション遅延の傾向と対策
- レプリケーション遅延が起こる原因とその調査・対策についてまとまっています。
最後に
さてこのくらいまで読んでおくと、大体ハイパフォーマンスMySQLを読んでいて、重要なところをピックアップしながら読んだり、更に理解を深めたりすることが出来るようになりました。最近は少しずつハイパフォーマンスMySQLを読んでます。
実践ハイパフォーマンスMySQL 第2版
posted with amazlet at 12.06.02
Baron Schwartz Peter Zaitsev Vadim Tkachenko Jeremy D. Zawodny Arjen Lentz Derek J. Balling
オライリージャパン
売り上げランキング: 16605
オライリージャパン
売り上げランキング: 16605
まとめてみると、ほとんどが漢(オトコ)のコンピュータ道のブログですね。非常に参考になりました。是非読んでみてください!