次のセクションでは、テーブル I/O およびロック待機サマリーテーブルについて説明します。
table_io_waits_summary_by_index_usage
: インデックスごとのテーブル I/O 待機table_io_waits_summary_by_table
: テーブルごとのテーブル I/O 待機table_lock_waits_summary_by_table
: テーブルごとのテーブルロック待機
table_io_waits_summary_by_table
テーブルは、wait/io/table/sql/handler
インストゥルメントによって生成されるすべてのテーブル I/O 待機イベントを集計します。グループ化はテーブル単位です。
table_io_waits_summary_by_table
テーブルには、テーブルのイベントの集計方法を示すこれらのグループ化カラムがあります。OBJECT_TYPE
、OBJECT_SCHEMA
、および OBJECT_NAME
。これらのカラムは、events_waits_current
テーブル内と同じ意味を持ちます。それらは、行の適用先のテーブルを識別します。
table_io_waits_summary_by_table
には集計された値を格納する次のサマリーカラムがあります。カラムの説明に示すように、一部のカラムは一般的で、より詳細なカラムの値の合計と同じ値を持ちます。たとえば、すべての書き込みを集計するカラムは、挿入、更新、および削除を集計する対応するカラムの合計を保持します。このように、低レベルカラムを合計するユーザー定義ビューを必要とせずに、高レベルでのアグリゲーションを直接取得できます。
-
COUNT_STAR
、SUM_TIMER_WAIT
、MIN_TIMER_WAIT
、AVG_TIMER_WAIT
、MAX_TIMER_WAIT
これらのカラムはすべての I/O 操作を集計します。それらは対応する
およびxxx
_READ
カラムの合計と同じです。xxx
_WRITE -
COUNT_READ
、SUM_TIMER_READ
、MIN_TIMER_READ
、AVG_TIMER_READ
、MAX_TIMER_READ
これらのカラムはすべての読み取り操作を集計します。それらは対応する
カラムの合計と同じです。xxx
_FETCH -
COUNT_WRITE
、SUM_TIMER_WRITE
、MIN_TIMER_WRITE
、AVG_TIMER_WRITE
、MAX_TIMER_WRITE
これらのカラムはすべての書き込み操作を集計します。それらは対応する
、xxx
_INSERT
、およびxxx
_UPDATE
カラムの合計と同じです。xxx
_DELETE -
COUNT_FETCH
、SUM_TIMER_FETCH
、MIN_TIMER_FETCH
、AVG_TIMER_FETCH
、MAX_TIMER_FETCH
これらのカラムはすべてのフェッチ操作を集計します。
-
COUNT_INSERT
、SUM_TIMER_INSERT
、MIN_TIMER_INSERT
、AVG_TIMER_INSERT
、MAX_TIMER_INSERT
これらのカラムはすべての挿入操作を集計します。
-
COUNT_UPDATE
、SUM_TIMER_UPDATE
、MIN_TIMER_UPDATE
、AVG_TIMER_UPDATE
、MAX_TIMER_UPDATE
これらのカラムはすべての更新操作を集計します。
-
COUNT_DELETE
、SUM_TIMER_DELETE
、MIN_TIMER_DELETE
、AVG_TIMER_DELETE
、MAX_TIMER_DELETE
これらのカラムはすべての削除操作を集計します。
TRUNCATE TABLE
はテーブル I/O サマリーテーブルに使用できます。それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。このテーブルを切り捨てると、table_io_waits_summary_by_index_usage
テーブルも切り捨てられます。
table_io_waits_summary_by_index_usage
テーブルは、wait/io/table/sql/handler
インストゥルメントによって生成されるすべてのテーブルインデックス I/O 待機イベントを集計します。グループ化はテーブルインデックス単位です。
table_io_waits_summary_by_index_usage
の構造は、table_io_waits_summary_by_table
とほぼ同一です。唯一の違いは、テーブル I/O 待機イベントが記録されたときに使用されたインデックスの名前に対応する、追加のグループカラム INDEX_NAME
です。
PRIMARY
の値はテーブル I/O でプライマリインデックスが使用されたことを示します。NULL
の値はテーブル I/O でインデックスが使用されなかったことを示します。挿入は
INDEX_NAME = NULL
に対してカウントされます。
TRUNCATE TABLE
はテーブル I/O サマリーテーブルに使用できます。それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。このテーブルも、table_io_waits_summary_by_table
テーブルの切り捨てによって切り捨てられます。テーブルのインデックス構造を変更する DDL 操作により、インデックスごとの統計がリセットされることがあります。
table_lock_waits_summary_by_table
テーブルは、wait/lock/table/sql/handler
インストゥルメントによって生成されるすべてのテーブルロック待機イベントを集計します。グループ化はテーブル単位です。
このテーブルには、内部および外部ロックに関する情報が格納されます。
-
内部ロックは、SQL レイヤーのロックに対応します。これは現在
thr_lock()
への呼び出しによって実装されます。イベント行で、これらのロックは、次のいずれかの値を持つOPERATION
カラムによって区別されます。read normal read with shared locks read high priority read no insert write allow write write concurrent insert write delayed write low priority write normal
-
外部ロックはストレージエンジンレイヤーのロックに対応します。これは現在
handler::external_lock()
への呼び出しによって実装されます。イベント行で、これらのロックは、次のいずれかの値を持つOPERATION
カラムによって区別されます。read external write external
table_lock_waits_summary_by_table
テーブルには、テーブルのイベントの集計方法を示すこれらのグループ化カラムがあります。OBJECT_TYPE
、OBJECT_SCHEMA
、および OBJECT_NAME
。これらのカラムは、events_waits_current
テーブル内と同じ意味を持ちます。それらは、行の適用先のテーブルを識別します。
table_lock_waits_summary_by_table
には集計された値を格納する次のサマリーカラムがあります。カラムの説明に示すように、一部のカラムは一般的で、より詳細なカラムの値の合計と同じ値を持ちます。たとえば、すべてのロックを集計するカラムは、読み取りおよび書き込みロックを集計する対応するカラムの合計を保持します。このように、低レベルカラムを合計するユーザー定義ビューを必要とせずに、高レベルでのアグリゲーションを直接取得できます。
-
COUNT_STAR
、SUM_TIMER_WAIT
、MIN_TIMER_WAIT
、AVG_TIMER_WAIT
、MAX_TIMER_WAIT
これらのカラムはすべてのロック操作を集計します。それらは対応する
およびxxx
_READ
カラムの合計と同じです。xxx
_WRITE -
COUNT_READ
、SUM_TIMER_READ
、MIN_TIMER_READ
、AVG_TIMER_READ
、MAX_TIMER_READ
これらのカラムはすべての読み取りロック操作を集計します。それらは対応する
、xxx
_READ_NORMAL
、xxx
_READ_WITH_SHARED_LOCKS
、およびxxx
_READ_HIGH_PRIORITY
カラムの合計と同じです。xxx
_READ_NO_INSERT -
COUNT_WRITE
、SUM_TIMER_WRITE
、MIN_TIMER_WRITE
、AVG_TIMER_WRITE
、MAX_TIMER_WRITE
これらのカラムはすべての書き込みロック操作を集計します。それらは対応する
、xxx
_WRITE_ALLOW_WRITE
、xxx
_WRITE_CONCURRENT_INSERT
、xxx
_WRITE_DELAYED
、およびxxx
_WRITE_LOW_PRIORITY
カラムの合計と同じです。xxx
_WRITE_NORMAL -
COUNT_READ_NORMAL
、SUM_TIMER_READ_NORMAL
、MIN_TIMER_READ_NORMAL
、AVG_TIMER_READ_NORMAL
、MAX_TIMER_READ_NORMAL
これらのカラムは内部読み取りロックを集計します。
-
COUNT_READ_WITH_SHARED_LOCKS
、SUM_TIMER_READ_WITH_SHARED_LOCKS
、MIN_TIMER_READ_WITH_SHARED_LOCKS
、AVG_TIMER_READ_WITH_SHARED_LOCKS
、MAX_TIMER_READ_WITH_SHARED_LOCKS
これらのカラムは内部読み取りロックを集計します。
-
COUNT_READ_HIGH_PRIORITY
、SUM_TIMER_READ_HIGH_PRIORITY
、MIN_TIMER_READ_HIGH_PRIORITY
、AVG_TIMER_READ_HIGH_PRIORITY
、MAX_TIMER_READ_HIGH_PRIORITY
これらのカラムは内部読み取りロックを集計します。
-
COUNT_READ_NO_INSERT
、SUM_TIMER_READ_NO_INSERT
、MIN_TIMER_READ_NO_INSERT
、AVG_TIMER_READ_NO_INSERT
、MAX_TIMER_READ_NO_INSERT
これらのカラムは内部読み取りロックを集計します。
-
COUNT_READ_EXTERNAL
、SUM_TIMER_READ_EXTERNAL
、MIN_TIMER_READ_EXTERNAL
、AVG_TIMER_READ_EXTERNAL
、MAX_TIMER_READ_EXTERNAL
これらのカラムは外部読み取りロックを集計します。
-
COUNT_WRITE_ALLOW_WRITE
、SUM_TIMER_WRITE_ALLOW_WRITE
、MIN_TIMER_WRITE_ALLOW_WRITE
、AVG_TIMER_WRITE_ALLOW_WRITE
、MAX_TIMER_WRITE_ALLOW_WRITE
これらのカラムは内部書き込みロックを集計します。
-
COUNT_WRITE_CONCURRENT_INSERT
、SUM_TIMER_WRITE_CONCURRENT_INSERT
、MIN_TIMER_WRITE_CONCURRENT_INSERT
、AVG_TIMER_WRITE_CONCURRENT_INSERT
、MAX_TIMER_WRITE_CONCURRENT_INSERT
これらのカラムは内部書き込みロックを集計します。
-
COUNT_WRITE_DELAYED
、SUM_TIMER_WRITE_DELAYED
、MIN_TIMER_WRITE_DELAYED
、AVG_TIMER_WRITE_DELAYED
、MAX_TIMER_WRITE_DELAYED
これらのカラムは内部書き込みロックを集計します。
MySQL 5.6.6 以降、
DELAYED
挿入は非推奨であるため、これらのカラムは将来のリリースで削除されます。 -
COUNT_WRITE_LOW_PRIORITY
、SUM_TIMER_WRITE_LOW_PRIORITY
、MIN_TIMER_WRITE_LOW_PRIORITY
、AVG_TIMER_WRITE_LOW_PRIORITY
、MAX_TIMER_WRITE_LOW_PRIORITY
これらのカラムは内部書き込みロックを集計します。
-
COUNT_WRITE_NORMAL
、SUM_TIMER_WRITE_NORMAL
、MIN_TIMER_WRITE_NORMAL
、AVG_TIMER_WRITE_NORMAL
、MAX_TIMER_WRITE_NORMAL
これらのカラムは内部書き込みロックを集計します。
-
COUNT_WRITE_EXTERNAL
、SUM_TIMER_WRITE_EXTERNAL
、MIN_TIMER_WRITE_EXTERNAL
、AVG_TIMER_WRITE_EXTERNAL
、MAX_TIMER_WRITE_EXTERNAL
これらのカラムは外部書き込みロックを集計します。
TRUNCATE TABLE
はテーブルロックサマリーテーブルに使用できます。それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。