MySQLパフォーマンス
概要
MySQL のパフォーマンスチューニングは、クエリの応答時間を中心に据えて、インデックス・スキーマ・クエリの最適化を行う実践分野です。書籍『効率的なMySQLパフォーマンス』(Daniel Nichter “Efficient MySQL Performance”)は、「サーバーの内部メトリクスを追う」のではなく クエリの応答時間(latency)から逆算する アプローチを重視します。
中心となる考え方
- 応答時間(Response Time)こそが最重要指標 — ユーザーが体感するのは応答時間
- ボトルネックを推測せず、計測して特定する(システムパフォーマンス の方法論と共通)
- スロークエリログ・
EXPLAIN・パフォーマンススキーマで分析
最適化の柱
| 観点 | 内容 |
|---|---|
| インデックス | 適切なインデックスでフルスキャンを避ける。複合インデックスの順序が重要 |
| クエリ | EXPLAIN で実行計画を確認。不要な行・列の読み取りを減らす |
| スキーマ・データ型 | 適切なデータ型、正規化と非正規化のバランス(データモデリング) |
| データアクセス | N+1 問題の回避、バッチ化、キャッシュ |
| データ量 | パーティショニング、アーカイブ、シャーディング |
関連トピックとの接続
- スキーマ設計の可視化 → データモデリング / SQLからER図への変換ツール
- システム全体の性能分析 → システムパフォーマンス
- 計測の重要性 → オブザーバビリティ
- データストア選択 → クラウドアプリケーション設計原則(用途に最適なデータストアを選ぶ)
関連ページ
参考資料
- 効率的なMySQLパフォーマンス(Daniel Nichter)