DataBase  /  MySQL  /  レポート取得ガイド

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 AWRMySQL
統計収集の仕組み 自動スナップショット(デフォルト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 以降の推奨
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_analysissys.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.7MySQL 8.0MySQL 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 集計・レポート生成)