パフォーマンススキーマとは
パフォーマンススキーマは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.では,
図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)
実際に測定する件数が設定値を超えた場合には,
履歴件数の設定
どれだけの履歴データを蓄積するかもオプションファイルのパラメータで,
図2 履歴件数の設定値の例
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)