MySQL 8.0 リファレンスマニュアル


27.12.18.8 テーブル I/O およびロック待機サマリーテーブル

次のセクションでは、テーブル 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: テーブルごとのテーブルロック待機

27.12.18.8.1 table_io_waits_summary_by_table テーブル

table_io_waits_summary_by_table テーブルは、wait/io/table/sql/handler インストゥルメントによって生成されるすべてのテーブル I/O 待機イベントを集計します。 グループ化はテーブル単位です。

table_io_waits_summary_by_table テーブルには、テーブルのイベントの集計方法を示すこれらのグループ化カラムがあります。OBJECT_TYPEOBJECT_SCHEMA、および OBJECT_NAME。 これらのカラムは、events_waits_current テーブル内と同じ意味を持ちます。 それらは、行の適用先のテーブルを識別します。

table_io_waits_summary_by_table には集計された値を格納する次のサマリーカラムがあります。 カラムの説明に示すように、一部のカラムは一般的で、より詳細なカラムの値の合計と同じ値を持ちます。 たとえば、すべての書き込みを集計するカラムは、挿入、更新、および削除を集計する対応するカラムの合計を保持します。 このように、低レベルカラムを合計するユーザー定義ビューを必要とせずに、高レベルでのアグリゲーションを直接取得できます。

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    これらのカラムはすべての I/O 操作を集計します。 それらは対応する xxx_READ および xxx_WRITE カラムの合計と同じです。

  • COUNT_READSUM_TIMER_READMIN_TIMER_READAVG_TIMER_READMAX_TIMER_READ

    これらのカラムはすべての読み取り操作を集計します。 それらは対応する xxx_FETCH カラムの合計と同じです。

  • COUNT_WRITESUM_TIMER_WRITEMIN_TIMER_WRITEAVG_TIMER_WRITEMAX_TIMER_WRITE

    これらのカラムはすべての書き込み操作を集計します。 それらは対応する xxx_INSERTxxx_UPDATE、および xxx_DELETE カラムの合計と同じです。

  • COUNT_FETCHSUM_TIMER_FETCHMIN_TIMER_FETCHAVG_TIMER_FETCHMAX_TIMER_FETCH

    これらのカラムはすべてのフェッチ操作を集計します。

  • COUNT_INSERTSUM_TIMER_INSERTMIN_TIMER_INSERTAVG_TIMER_INSERTMAX_TIMER_INSERT

    これらのカラムはすべての挿入操作を集計します。

  • COUNT_UPDATESUM_TIMER_UPDATEMIN_TIMER_UPDATEAVG_TIMER_UPDATEMAX_TIMER_UPDATE

    これらのカラムはすべての更新操作を集計します。

  • COUNT_DELETESUM_TIMER_DELETEMIN_TIMER_DELETEAVG_TIMER_DELETEMAX_TIMER_DELETE

    これらのカラムはすべての削除操作を集計します。

table_io_waits_summary_by_table テーブルには次のインデックスがあります:

  • (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME) の一意インデックス

TRUNCATE TABLE はテーブル I/O サマリーテーブルに使用できます。 それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。 このテーブルを切り捨てると、table_io_waits_summary_by_index_usage テーブルも切り捨てられます。

27.12.18.8.2 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 に対してカウントされます。

table_io_waits_summary_by_index_usage テーブルには次のインデックスがあります:

  • (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME) の一意インデックス

TRUNCATE TABLE はテーブル I/O サマリーテーブルに使用できます。 それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。 このテーブルも、table_io_waits_summary_by_table テーブルの切り捨てによって切り捨てられます。 テーブルのインデックス構造を変更する DDL 操作により、インデックスごとの統計がリセットされることがあります。

27.12.18.8.3 table_lock_waits_summary_by_table テーブル

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_TYPEOBJECT_SCHEMA、および OBJECT_NAME。 これらのカラムは、events_waits_current テーブル内と同じ意味を持ちます。 それらは、行の適用先のテーブルを識別します。

table_lock_waits_summary_by_table には集計された値を格納する次のサマリーカラムがあります。 カラムの説明に示すように、一部のカラムは一般的で、より詳細なカラムの値の合計と同じ値を持ちます。 たとえば、すべてのロックを集計するカラムは、読み取りおよび書き込みロックを集計する対応するカラムの合計を保持します。 このように、低レベルカラムを合計するユーザー定義ビューを必要とせずに、高レベルでのアグリゲーションを直接取得できます。

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    これらのカラムはすべてのロック操作を集計します。 それらは対応する xxx_READ および xxx_WRITE カラムの合計と同じです。

  • COUNT_READSUM_TIMER_READMIN_TIMER_READAVG_TIMER_READMAX_TIMER_READ

    これらのカラムはすべての読み取りロック操作を集計します。 それらは対応する xxx_READ_NORMALxxx_READ_WITH_SHARED_LOCKSxxx_READ_HIGH_PRIORITY、および xxx_READ_NO_INSERT カラムの合計と同じです。

  • COUNT_WRITESUM_TIMER_WRITEMIN_TIMER_WRITEAVG_TIMER_WRITEMAX_TIMER_WRITE

    これらのカラムはすべての書き込みロック操作を集計します。 これらは、対応する xxx_WRITE_ALLOW_WRITExxx_WRITE_CONCURRENT_INSERTxxx_WRITE_LOW_PRIORITY および xxx_WRITE_NORMAL のカラムの合計と同じです。

  • COUNT_READ_NORMALSUM_TIMER_READ_NORMALMIN_TIMER_READ_NORMALAVG_TIMER_READ_NORMALMAX_TIMER_READ_NORMAL

    これらのカラムは内部読み取りロックを集計します。

  • COUNT_READ_WITH_SHARED_LOCKSSUM_TIMER_READ_WITH_SHARED_LOCKSMIN_TIMER_READ_WITH_SHARED_LOCKSAVG_TIMER_READ_WITH_SHARED_LOCKSMAX_TIMER_READ_WITH_SHARED_LOCKS

    これらのカラムは内部読み取りロックを集計します。

  • COUNT_READ_HIGH_PRIORITYSUM_TIMER_READ_HIGH_PRIORITYMIN_TIMER_READ_HIGH_PRIORITYAVG_TIMER_READ_HIGH_PRIORITYMAX_TIMER_READ_HIGH_PRIORITY

    これらのカラムは内部読み取りロックを集計します。

  • COUNT_READ_NO_INSERTSUM_TIMER_READ_NO_INSERTMIN_TIMER_READ_NO_INSERTAVG_TIMER_READ_NO_INSERTMAX_TIMER_READ_NO_INSERT

    これらのカラムは内部読み取りロックを集計します。

  • COUNT_READ_EXTERNALSUM_TIMER_READ_EXTERNALMIN_TIMER_READ_EXTERNALAVG_TIMER_READ_EXTERNALMAX_TIMER_READ_EXTERNAL

    これらのカラムは外部読み取りロックを集計します。

  • COUNT_WRITE_ALLOW_WRITESUM_TIMER_WRITE_ALLOW_WRITEMIN_TIMER_WRITE_ALLOW_WRITEAVG_TIMER_WRITE_ALLOW_WRITEMAX_TIMER_WRITE_ALLOW_WRITE

    これらのカラムは内部書き込みロックを集計します。

  • COUNT_WRITE_CONCURRENT_INSERTSUM_TIMER_WRITE_CONCURRENT_INSERTMIN_TIMER_WRITE_CONCURRENT_INSERTAVG_TIMER_WRITE_CONCURRENT_INSERTMAX_TIMER_WRITE_CONCURRENT_INSERT

    これらのカラムは内部書き込みロックを集計します。

  • COUNT_WRITE_LOW_PRIORITYSUM_TIMER_WRITE_LOW_PRIORITYMIN_TIMER_WRITE_LOW_PRIORITYAVG_TIMER_WRITE_LOW_PRIORITYMAX_TIMER_WRITE_LOW_PRIORITY

    これらのカラムは内部書き込みロックを集計します。

  • COUNT_WRITE_NORMALSUM_TIMER_WRITE_NORMALMIN_TIMER_WRITE_NORMALAVG_TIMER_WRITE_NORMALMAX_TIMER_WRITE_NORMAL

    これらのカラムは内部書き込みロックを集計します。

  • COUNT_WRITE_EXTERNALSUM_TIMER_WRITE_EXTERNALMIN_TIMER_WRITE_EXTERNALAVG_TIMER_WRITE_EXTERNALMAX_TIMER_WRITE_EXTERNAL

    これらのカラムは外部書き込みロックを集計します。

table_lock_waits_summary_by_table テーブルには次のインデックスがあります:

  • (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME) の一意インデックス

TRUNCATE TABLE はテーブルロックサマリーテーブルに使用できます。 それは、行を削除するのではなく、サマリーカラムを 0 にリセットします。


関連キーワード:  テーブル, TIMER, カラム, WRITE, READ, 集計, waits, ロック, パフォーマンス, スキーマ