MySQLのEXPLAINコマンドによるクエリの実行計画の確認
Explain コマンドは MySQL において、クエリ文の実行計画を分析・最適化するために用いられる。クエリの使用インデックス、テーブル結合順序、データの読み取り方法など、クエリ文がどのように実行されるかについての情報を返します。
Explainコマンドを実行することで、クエリの実行計画を知り、潜在的なパフォーマンス問題を特定し、クエリを調整してパフォーマンスを向上させることができます。また、Explainコマンドは、開発者やデータベース管理者がクエリの実行手順を理解し、最適化することもできます。
Explainコマンドの出力には、以下の列情報が含まれています。
- id: クエリ識別子
- セレクトのタイプ: 単純な検索や結合検索など、クエリーのタイプ
- テーブル: クエリの対象となるテーブル
- 使用中のパーティション
- データ取得方法(全テーブルスキャン、インデックススキャンなど)
- 使用可能な鍵
- 実際の使用でインデックスが使用される
- キーレン: 使用するインデックスの長さ
- 行・インデックスのマッチ条件
- 行数: 返される行数の推定値
- フィルタリングされた行データの率
- 補足:ソートやテンポラリテーブルなど、追加のしきい値情報
Explain出力結果を解析することで必要に応じてインデックス最適化やクエリ書き換え、および表の再構成を行い、クエリ文の実行性能を向上することができます。