パフォーマンススキーマとは
パフォーマンススキーマはMySQL 5.
パフォーマンススキーマは性能統計情報を記録するストレージエンジンの一種として実装されており、
MySQL 5.
MySQL 5.
パフォーマンススキーマの階層構造
パフォーマンススキーマのテーブル名や格納されている値の
- Session:接続
- Transaction:トランザクション
(MySQL 5. 7から) - Statement:SQL文
- Stage:SQL実行プロセスのステップ
- Wait:処理実行待ち
パフォーマンススキーマの設定
パフォーマンススキーマには、
- 測定データの蓄積に割り当てるメモリ量はオプションファイル
(my. cnf/ my. ini) にてパラメータを設定します。この設定値は動的な変更はできません。 - 測定項目
(Instruments) を各setupテーブルに対してUPDATE文を発行して、 オン/ オフを動的に変更可能です。 - 測定項目
(Instruments) をオプションファイルにてパラメータを設定して、 オン/ オフの制御が可能です。この方法はMySQL 5. 6から利用可能となりました。
クラス数とインスタンス数の設定
上記の1.では、
mysql> SELECT VARIABLE_NAME, VARIABLE_VALUE -> FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -> WHERE VARIABLE_NAME LIKE 'PERF%CLASSES' -> OR VARIABLE_NAME LIKE 'PERF%INSTANCES' -> ORDER BY VARIABLE_NAME; +------------------------------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +------------------------------------------+----------------+ | PERFORMANCE_SCHEMA_MAX_COND_CLASSES | 80 | | PERFORMANCE_SCHEMA_MAX_COND_INSTANCES | 3504 | | PERFORMANCE_SCHEMA_MAX_FILE_CLASSES | 50 | | PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES | 7693 | | PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES | 200 | | PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES | 15906 | | PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES | 40 | | PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES | 9102 | | PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES | 10 | | PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES | 322 | | PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES | 150 | | PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES | 168 | | PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES | 12500 | | PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES | 50 | | PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES | 402 | +------------------------------------------+----------------+ 15 rows in set (0.01 sec)
実際に測定する件数が設定値を超えた場合には、
履歴件数の設定
どれだけの履歴データを蓄積するかもオプションファイルのパラメータで、
mysql> SELECT VARIABLE_NAME, VARIABLE_VALUE -> FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES -> WHERE VARIABLE_NAME LIKE 'PERF%' -> AND VARIABLE_NAME NOT LIKE '%CLASSES' -> AND VARIABLE_NAME NOT LIKE '%INSTANCES' -> ORDER BY VARIABLE_NAME; +--------------------------------------------------------+----------------+ | VARIABLE_NAME | VARIABLE_VALUE | +--------------------------------------------------------+----------------+ | PERFORMANCE_SCHEMA | ON | | PERFORMANCE_SCHEMA_ACCOUNTS_SIZE | 100 | | PERFORMANCE_SCHEMA_DIGESTS_SIZE | 10000 | | PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE | 10000 | | PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE | 10 | | PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE | 10000 | | PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE | 10 | | PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE | 10000 | | PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE | 10 | | PERFORMANCE_SCHEMA_HOSTS_SIZE | 100 | | PERFORMANCE_SCHEMA_MAX_FILE_HANDLES | 32768 | | PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES | 4000 | | PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE | 512 | | PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE | 100 | | PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE | 100 | | PERFORMANCE_SCHEMA_USERS_SIZE | 100 | +--------------------------------------------------------+----------------+ 16 rows in set (0.00 sec)
setup_テーブルでの設定
パフォーマンススキーマでどのような情報を取得するかはperformance_
テーブル名 | 役割 |
---|---|
setup_ |
情報取得対象とするユーザアカウントの設定 |
setup_ |
どれだけの情報を取得するかの設定 |
setup_ |
MySQLサーバのソースコード内に設けられた処理時間や待機時間を収集するための |
setup_ |
情報取得対象とするオブジェクトの設定 |
setup_ |
各“instrument” |
オプションファイルでの設定
MySQL 5.
- performance_
schema_ consumer_ consumer名=value 例)
performance_ schema_ consumer_ events_ stages_ current=on
instrumentについては、
- performance_
schema_ instrument='instrument名=値' 値 = [on | true | 1] / [off | false | 0] / [counted] (回数計測のみ)
なお、
- 例)
wait/
synch/ mutex/%
パフォーマンススキーマのデータ格納テーブルの名称
名称がevents_で始まるテーブルは個別の
テーブル名の末尾が_currentは現在のイベント、
SYSスキーマ
パフォーマンススキーマは非常に細かな粒度で情報が取得できるものの、
SYSスキーマはps_
- MarkLeith/
mysql-sys:https:// github. com/ MarkLeith/ mysql-sys/
テーブル名がx$で始まるものは単位無しのデータで、

稼働状況の確認方法(3)-MySQL Workbenchのパフォーマンスダッシュボードとレポート
MySQL WorkbenchはMySQLの運用や開発を支援するオープンソースのGUIツールです。MySQL Workbench 6.


パフォーマンスレポートでは、


パフォーマンススキーマで取得する情報量をGUIから制御することも可能です。
次回は
次回はMySQLでのSQL文のチューニングの基本をご紹介いたします。