MySQL レポート取得ガイド — はじめに
Oracle AWR との対応と取得方法の概要
Oracle AWR レポートで確認できる情報を MySQL で取得するには、複数の方法を組み合わせる必要があります。 本シリーズでは Performance Schema・SHOW コマンド・Slow Query Log・sys スキーマ・pt-query-digest の5つの取得方法を個別に解説し、各方法で取得できるセクションを定義します。
1. Oracle AWR と MySQL の違い
Oracle Database の AWR(Automatic Workload Repository)は、DB 全体の統計スナップショットを 自動収集・蓄積し、任意の期間のパフォーマンスレポートを生成する仕組みです。 一方 MySQL には AWR に相当する単一の統合レポート機能は存在せず、 目的に応じた複数の仕組みから情報を収集する必要があります。
| 観点 | Oracle AWR | MySQL |
|---|---|---|
| 統計収集の仕組み | 自動スナップショット(デフォルト60分間隔) | Performance Schema が常時累積カウンタを保持。RESET で初期化。 |
| レポート出力 | awrrpt.sql で HTML/TEXT レポートを生成 | 単一レポートはなく、SQL・コマンド・ログを組み合わせて取得 |
| SQL 統計 | SQL Statistics セクション(Elapsed Time 順など) | Performance Schema / sys スキーマ / Slow Query Log で取得 |
| 待機イベント | Top 5 Timed Events・Wait Event Histogram | Performance Schema の events_waits_summary_* で取得 |
| I/O 統計 | Tablespace I/O・File I/O | Performance Schema の file_summary_by_instance で取得 |
| 履歴保持 | AWR 保存期間(デフォルト8日)内で任意期間比較可能 | Performance Schema は再起動またはRESETで初期化される(永続化は別途必要) |
MySQL 8.0 では Performance Schema が大幅に強化され、sys スキーマも標準搭載されました。 本シリーズは MySQL 8.0 以降を対象としています。MySQL 5.7 でも多くの機能は利用可能ですが、 一部の sys スキーマビューや Performance Schema テーブルが異なる場合があります。
2. MySQL における5つの取得方法
① Performance Schema(PART 02)
MySQL 組み込みの低レベル計装フレームワーク。待機イベント・SQL 統計・ステージ・トランザクション・
I/O・メモリ使用量などをカーネルレベルで収集する。Oracle AWR に最も近い情報源。
performance_schema データベース内のテーブルを SQL で直接参照する。
② SHOW STATUS / SHOW VARIABLES(PART 03)
MySQL の組み込みコマンドで、グローバル・セッション単位のステータス変数と設定パラメータを取得する。
手軽に取得できる反面、スナップショット機能はなく差分計算は手動で行う必要がある。
SHOW GLOBAL STATUS / SHOW GLOBAL VARIABLES が主なコマンド。
③ Slow Query Log(PART 04)
指定閾値(long_query_time)を超えたクエリをファイルに記録する仕組み。
Oracle AWR の SQL Statistics セクションに対応する重要な情報源。
ログファイルを直接解析するほか、mysqldumpslow で集計できる。
④ sys スキーマ(PART 05)
Performance Schema の生データをわかりやすく加工するビューとプロシージャの集合体。
MySQL 5.7.7 以降に標準搭載。sys.statement_analysis や
sys.wait_classes_global_by_avg_latency など、AWR の各セクションに対応する
ビューが多数用意されている。
⑤ mysqldumpslow / pt-query-digest(PART 06)
Slow Query Log を集計・解析するツール。mysqldumpslow は MySQL 付属の簡易集計ツール、
pt-query-digest(Percona Toolkit)は高機能な解析ツールで、
AWR の SQL Statistics に相当するレポートを生成できる。
3. AWR セクションと MySQL 取得方法の対応表
| AWR セクション | ① Perf Schema |
② SHOW |
③ Slow Log |
④ sys |
⑤ dumpslow/ pt-digest |
|---|---|---|---|---|---|
| DB Time / Elapsed Time | ◎ | △ | — | ◎ | — |
| Top 5 Timed Events(待機イベント) | ◎ | — | — | ◎ | — |
| SQL Statistics(重い SQL) | ◎ | — | ◎ | ◎ | ◎ |
| Instance Activity(接続数・コミット数など) | ○ | ◎ | — | ○ | — |
| I/O Statistics(ファイル I/O) | ◎ | ○ | — | ◎ | — |
| Buffer Pool / Memory(バッファプール) | ◎ | ◎ | — | ○ | — |
| Latch Statistics | ◎ | — | — | △ | — |
| Lock Statistics(ロック待ち) | ◎ | ○ | — | ◎ | — |
| Undo Statistics | ○ | ○ | — | — | — |
| Segment Statistics(テーブル/インデックス別 I/O) | ◎ | — | — | ◎ | — |
| DB パラメータ(初期化パラメータ) | — | ◎ | — | — | — |
◎ = 詳細情報が取得可能 / ○ = 一部取得可能 / △ = 限定的 / — = 対応なし
4. 対応バージョン
| 機能 | MySQL 5.7 | MySQL 8.0 | MySQL 8.4(LTS) |
|---|---|---|---|
| Performance Schema 基本 | ○ | ◎ | ◎ |
| sys スキーマ | ○(5.7.7+) | ◎ | ◎ |
| Slow Query Log | ◎ | ◎ | ◎ |
| SHOW STATUS / VARIABLES | ◎ | ◎ | ◎ |
| pt-query-digest(Percona Toolkit) | ◎ | ◎ | ◎ |
| Performance Schema メモリ計装 | △ | ◎ | ◎ |
| Performance Schema トランザクション | ○ | ◎ | ◎ |
5. シリーズ構成
| PART | タイトル | 主な対応 AWR セクション |
|---|---|---|
| PART 01(本記事) | はじめに — Oracle AWR との対応と取得方法の概要 | 全体概要・対応表 |
| PART 02 | Performance Schema による取得とセクション定義 | 待機イベント・SQL統計・I/O・メモリ・ロック・ラッチ |
| PART 03 | SHOW STATUS / SHOW VARIABLES による取得とセクション定義 | Instance Activity・バッファプール・接続統計・パラメータ |
| PART 04 | Slow Query Log による取得とセクション定義 | SQL Statistics(重い SQL の特定) |
| PART 05 | sys スキーマ(SQL)による取得とセクション定義 | 待機イベント・SQL統計・I/O・ロック・セグメント統計 |
| PART 06 | mysqldumpslow / pt-query-digest による取得とセクション定義 | SQL Statistics(Slow Query Log 集計・レポート生成) |