MySQL 5.5 を含む InnoDB 1.1 から、MySQL パフォーマンススキーマ機能を使用して InnoDB の特定の内部操作をプロファイルできます。このタイプのチューニングは主に、MySQL のパフォーマンスの制限をプッシュしたり、MySQL のソースコードを読んだり、パフォーマンスのボトルネックを克服するための最適化方法を評価したりする上級ユーザー向けです。DBA はまた、この機能を容量計画に使用することにより、標準的なワークロードのときに CPU、RAM、およびディスクストレージの特定の組み合わせでパフォーマンスのボトルネックが発生するかどうかを確認し、発生する場合は、システムの一部の容量を増やすことでパフォーマンスを向上させることができるかどうかを判断することもできます。
この機能を使用して InnoDB のパフォーマンスを検査するには:
セクション22.2「パフォーマンススキーマ構成」で説明されているように、パフォーマンススキーマ機能が使用可能で、かつ有効になっている状態で MySQL 5.5 以降を実行している必要があります。パフォーマンススキーマ機能によってある程度のパフォーマンスオーバーヘッドが導入されるため、この機能は本番システムではなく、テストまたは開発システムで使用するようにしてください。
たとえば、
performance_schema
データベース内のテーブルをクエリーする方法など、パフォーマンススキーマ機能の使用方法に全般的に精通している必要があります。-
次の種類の InnoDB オブジェクトは、対応する
performance_schema
テーブルをクエリーすることによって検査します。InnoDB に関連した項目はすべて、EVENT_NAME
カラム内に部分文字列innodb
を含んでいます。*_instances
テーブルの定義については、セクション22.9.3「パフォーマンススキーマインスタンステーブル」を参照してください。*_summary_*
テーブルの定義については、セクション22.9.9「パフォーマンススキーマサマリーテーブル」を参照してください。thread
テーブルの定義については、セクション22.9.10「パフォーマンススキーマのその他のテーブル」を参照してください。*_current_*
および*_history_*
テーブルの定義については、セクション22.9.4「パフォーマンススキーマ待機イベントテーブル」を参照してください。 パフォーマンステスト中に、
events_waits_current
およびevents_waits_history_long
テーブル内のパフォーマンスデータを検査します。InnoDB 関連のオブジェクトに特に関心がある場合は、句WHERE EVENT_NAME LIKE '%innodb%'
を使用してそれらのエントリだけを確認します。それ以外の場合は、MySQL サーバー全体のパフォーマンス統計を検査します。
MySQL パフォーマンススキーマの詳細は、第22章「MySQL パフォーマンススキーマ」を参照してください。