このページは機械翻訳したものです。
    このセクションでは、InnoDB とパフォーマンススキーマの統合について簡単に説明します。 包括的なパフォーマンススキーマドキュメントについては、第27章「MySQL パフォーマンススキーマ」 を参照してください。 
  
    MySQL Performance Schema feature を使用して、特定の内部 InnoDB 操作をプロファイルできます。 このタイプのチューニングは、主に最適化戦略を評価してパフォーマンスボトルネックを克服するエキスパートユーザーを対象としています。 DBA はまた、この機能を容量計画に使用することにより、標準的なワークロードのときに CPU、RAM、およびディスクストレージの特定の組み合わせでパフォーマンスのボトルネックが発生するかどうかを確認し、発生する場合は、システムの一部の容量を増やすことでパフォーマンスを向上させることができるかどうかを判断することもできます。 
  
    この機能を使用して InnoDB のパフォーマンスを調べるには:
  
通常、Performance Schema feature の使用方法に精通している必要があります。 たとえば、インストゥルメントとコンシューマを有効にする方法、および
performance_schemaテーブルをクエリーしてデータを取得する方法を理解する必要があります。 概要については、セクション27.1「パフォーマンススキーマクイックスタート」 を参照してください。- 
InnoDBで使用可能なパフォーマンススキーマインストゥルメントに精通している必要があります。InnoDB関連のインストゥルメントを表示するには、innodbを含むインストゥルメント名をsetup_instrumentsテーブルにクエリーすることができます。mysql> SELECT * FROM performance_schema.setup_instruments WHERE NAME LIKE '%innodb%'; +-------------------------------------------------------+---------+-------+ | NAME | ENABLED | TIMED | +-------------------------------------------------------+---------+-------+ | wait/synch/mutex/innodb/commit_cond_mutex | NO | NO | | wait/synch/mutex/innodb/innobase_share_mutex | NO | NO | | wait/synch/mutex/innodb/autoinc_mutex | NO | NO | | wait/synch/mutex/innodb/buf_pool_mutex | NO | NO | | wait/synch/mutex/innodb/buf_pool_zip_mutex | NO | NO | | wait/synch/mutex/innodb/cache_last_read_mutex | NO | NO | | wait/synch/mutex/innodb/dict_foreign_err_mutex | NO | NO | | wait/synch/mutex/innodb/dict_sys_mutex | NO | NO | | wait/synch/mutex/innodb/recalc_pool_mutex | NO | NO | ... | 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 | | stage/innodb/alter table (end) | YES | YES | | stage/innodb/alter table (flush) | YES | YES | | stage/innodb/alter table (insert) | YES | YES | | stage/innodb/alter table (log apply index) | YES | YES | | stage/innodb/alter table (log apply table) | YES | YES | | stage/innodb/alter table (merge sort) | YES | YES | | stage/innodb/alter table (read PK and internal sort) | YES | YES | | stage/innodb/buffer pool load | YES | YES | | memory/innodb/buf_buf_pool | NO | NO | | memory/innodb/dict_stats_bg_recalc_pool_t | NO | NO | | memory/innodb/dict_stats_index_map_t | NO | NO | | memory/innodb/dict_stats_n_diff_on_level | NO | NO | | memory/innodb/other | NO | NO | | memory/innodb/row_log_buf | NO | NO | | memory/innodb/row_merge_sort | NO | NO | | memory/innodb/std | NO | NO | | memory/innodb/sync_debug_latches | NO | NO | | memory/innodb/trx_sys_t::rw_trx_ids | NO | NO | ... +-------------------------------------------------------+---------+-------+ 155 rows in set (0.00 sec)インストゥルメントされた
InnoDBオブジェクトに関する追加情報については、インストゥルメントされたオブジェクトに関する追加情報を提供するパフォーマンススキーマ instances tables をクエリーできます。InnoDBに関連するインスタンステーブルは次のとおりです:mutex_instancesテーブルrwlock_instancesテーブルcond_instancesテーブルfile_instancesテーブル
注記InnoDBバッファプールに関連する相互排他ロックおよび RW ロックは、このカバレッジには含まれません。これは、SHOW ENGINE INNODB MUTEXコマンドの出力にも当てはまります。たとえば、ファイル I/O インストゥルメンテーションの実行時にパフォーマンススキーマに表示されるインストゥルメントされた
InnoDBファイルオブジェクトに関する情報を表示するには、次のクエリーを発行します:mysql> SELECT * FROM performance_schema.file_instances WHERE EVENT_NAME LIKE '%innodb%'\G *************************** 1. row *************************** FILE_NAME: /path/to/mysql-8.0/data/ibdata1 EVENT_NAME: wait/io/file/innodb/innodb_data_file OPEN_COUNT: 3 *************************** 2. row *************************** FILE_NAME: /path/to/mysql-8.0/data/ib_logfile0 EVENT_NAME: wait/io/file/innodb/innodb_log_file OPEN_COUNT: 2 *************************** 3. row *************************** FILE_NAME: /path/to/mysql-8.0/data/ib_logfile1 EVENT_NAME: wait/io/file/innodb/innodb_log_file OPEN_COUNT: 2 *************************** 4. row *************************** FILE_NAME: /path/to/mysql-8.0/data/mysql/engine_cost.ibd EVENT_NAME: wait/io/file/innodb/innodb_data_file OPEN_COUNT: 3 ... - 
InnoDBイベントデータを格納するperformance_schemaテーブルに精通している必要があります。InnoDB関連のイベントに関連するテーブルは次のとおりです:待機イベントを格納する Wait Event テーブル。
Summary テーブル。時間の経過とともに終了したイベントの集計情報を提供します。 サマリーテーブルには、I/O 操作に関する情報を集計する file I/O summary tables が含まれます。
Stage Event テーブル:
InnoDBALTER TABLEおよびバッファプールロード操作のイベントデータを格納します。 詳細は、セクション15.16.1「パフォーマンススキーマを使用した InnoDB テーブルの ALTER TABLE の進行状況のモニタリング」およびパフォーマンススキーマを使用したバッファプールのロード進行状況の監視を参照してください。
InnoDB関連のオブジェクトのみに関心がある場合は、これらのテーブルをクエリーするときにWHERE EVENT_NAME LIKE '%innodb%'句またはWHERE NAME LIKE '%innodb%'句を (必要に応じて) 使用します。