MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
このセクションでは、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_instrumentsWHERE 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_instancesWHERE 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 テーブル: InnoDB ALTER TABLE およびバッファプールロード操作のイベントデータを格納します。 詳細は、セクション15.16.1「パフォーマンススキーマを使用した InnoDB テーブルの ALTER TABLE の進行状況のモニタリング」およびパフォーマンススキーマを使用したバッファプールのロード進行状況の監視を参照してください。
InnoDB 関連のオブジェクトのみに関心がある場合は、これらのテーブルをクエリーするときに WHERE EVENT_NAME LIKE '%innodb%'句または WHERE NAME LIKE '%innodb%'句を (必要に応じて) 使用します。