パフォーマンススキーマにどのインストゥルメントが含まれているかを特定するには、常に setup_instruments
テーブルをチェックすることで可能です。 たとえば、InnoDB
ストレージエンジンに、どのファイル関連イベントがインストゥルメントされているかを確認するには、次のクエリーを使用します。
mysql> SELECT NAME, ENABLED, TIMED
FROM performance_schema.setup_instruments
WHERE NAME LIKE 'wait/io/file/innodb/%';
+-------------------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+-------------------------------------------------+---------+-------+
| wait/io/file/innodb/innodb_tablespace_open_file | YES | YES |
| wait/io/file/innodb/innodb_data_file | YES | YES |
| wait/io/file/innodb/innodb_log_file | YES | YES |
| wait/io/file/innodb/innodb_temp_file | YES | YES |
| wait/io/file/innodb/innodb_arch_file | YES | YES |
| wait/io/file/innodb/innodb_clone_file | YES | YES |
+-------------------------------------------------+---------+-------+
このドキュメントでは、いくつかの理由で、正確に何がインストゥルメントされるかについて詳細に説明していません。
何がインストゥルメントされるかは、サーバーコードです。 このコードへの変更は頻繁に行われ、インストゥルメントのセットにも影響します。
すべてのインストゥルメントは数百もあるため、それらを挙げることは現実的ではありません。
先述のように、
setup_instruments
テーブルをクエリーすることによって見つけることができます。 この情報は使用している MySQL のバージョンに常に最新であり、コアサーバーに含まれておらず、自動化されたツールで使用可能な、インストールしている可能性があるインストゥルメント済みのプラグインのインストゥルメンテーションも含みます。