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


27.12.18.5 トランザクション要約テーブル

パフォーマンススキーマは、現在および最近のトランザクションイベントを収集するためのテーブルを保持し、その情報をサマリーテーブルに集約します。セクション27.12.7「パフォーマンススキーマのトランザクションテーブル」 では、トランザクションサマリーの基になるイベントが記述されます。 トランザクションイベントの内容、現在および過去のトランザクションイベントテーブル、およびデフォルトで無効になっているトランザクションイベント収集の制御方法の詳細は、その説明を参照してください。

トランザクションイベントのサマリー情報の例:

mysql> SELECT *
       FROM performance_schema.events_transactions_summary_global_by_event_name
       LIMIT 1\G
*************************** 1. row ***************************
          EVENT_NAME: transaction
          COUNT_STAR: 5
      SUM_TIMER_WAIT: 19550092000
      MIN_TIMER_WAIT: 2954148000
      AVG_TIMER_WAIT: 3910018000
      MAX_TIMER_WAIT: 5486275000
    COUNT_READ_WRITE: 5
SUM_TIMER_READ_WRITE: 19550092000
MIN_TIMER_READ_WRITE: 2954148000
AVG_TIMER_READ_WRITE: 3910018000
MAX_TIMER_READ_WRITE: 5486275000
     COUNT_READ_ONLY: 0
 SUM_TIMER_READ_ONLY: 0
 MIN_TIMER_READ_ONLY: 0
 AVG_TIMER_READ_ONLY: 0
 MAX_TIMER_READ_ONLY: 0

各トランザクション要約テーブルには、テーブルでのイベントの集計方法を示す 1 つ以上のグループ化カラムがあります。 イベント名は、setup_instruments テーブル内のイベントインストゥルメントの名前を参照します:

  • events_transactions_summary_by_account_by_event_name には、USERHOST および EVENT_NAME カラムがあります。 各行には、特定のアカウント (ユーザーとホストの組合せ) およびイベント名のイベントが要約されます。

  • events_transactions_summary_by_host_by_event_name には、HOST カラムおよび EVENT_NAME カラムがあります。 各行には、特定のホストおよびイベント名のイベントが要約されます。

  • events_transactions_summary_by_thread_by_event_name には、THREAD_ID カラムおよび EVENT_NAME カラムがあります。 各行は特定のスレッドおよびイベント名のイベントを要約します。

  • events_transactions_summary_by_user_by_event_name には、USER カラムおよび EVENT_NAME カラムがあります。 各行には、特定のユーザーおよびイベント名のイベントが要約されます。

  • events_transactions_summary_global_by_event_name には EVENT_NAME カラムがあります。 各行は特定のイベント名のイベントを要約します。

各トランザクション要約テーブルには、集計値を含む次の要約カラムがあります:

  • COUNT_STARSUM_TIMER_WAITMIN_TIMER_WAITAVG_TIMER_WAITMAX_TIMER_WAIT

    これらのカラムは、待機イベントサマリーテーブル (セクション27.12.18.1「待機イベント要約テーブル」 を参照) の同じ名前のカラムに似ていますが、トランザクションサマリーテーブルでは、events_waits_current ではなく events_transactions_current のイベントが集計される点が異なります。 これらのカラムには、読取り/書込みトランザクションと読取り専用トランザクションがまとめられています。

  • COUNT_READ_WRITE, SUM_TIMER_READ_WRITE, MIN_TIMER_READ_WRITE, AVG_TIMER_READ_WRITE, MAX_TIMER_READ_WRITE

    これらは、COUNT_STAR カラムおよび xxx_TIMER_WAIT カラムに似ていますが、読取り/書込みトランザクションのみを要約します。 トランザクションアクセスモードでは、トランザクションが読取り/書込みモードと読取り専用モードのどちらで動作するかを指定します。

  • COUNT_READ_ONLY, SUM_TIMER_READ_ONLY, MIN_TIMER_READ_ONLY, AVG_TIMER_READ_ONLY, MAX_TIMER_READ_ONLY

    これらは、COUNT_STAR カラムおよび xxx_TIMER_WAIT カラムに似ていますが、読取り専用トランザクションのみを要約します。 トランザクションアクセスモードでは、トランザクションが読取り/書込みモードと読取り専用モードのどちらで動作するかを指定します。

トランザクション要約テーブルには、次のインデックスがあります:

  • events_transactions_summary_by_account_by_event_name:

    • 主キー (USER, HOST, EVENT_NAME)

  • events_transactions_summary_by_host_by_event_name:

    • 主キー (HOSTEVENT_NAME)

  • events_transactions_summary_by_thread_by_event_name:

    • 主キー (THREAD_IDEVENT_NAME)

  • events_transactions_summary_by_user_by_event_name:

    • 主キー (USEREVENT_NAME)

  • events_transactions_summary_global_by_event_name:

    • 主キー (EVENT_NAME)

TRUNCATE TABLE は、トランザクション要約テーブルに対して許可されています。 これには次の効果があります:

  • アカウント、ホストまたはユーザーごとに集計されないサマリーテーブルの場合、切捨てによって、行が削除されるのではなくサマリーカラムがゼロにリセットされます。

  • アカウント、ホストまたはユーザー別に集計されたサマリーテーブルの場合、切捨てによって、接続のないアカウント、ホストまたはユーザーの行が削除され、残りの行のサマリーカラムがゼロにリセットされます。

また、アカウント、ホスト、ユーザーまたはスレッド別に集計された各トランザクションサマリーテーブルは、依存する接続テーブルの切捨てまたは events_transactions_summary_global_by_event_name の切捨てによって暗黙的に切り捨てられます。 詳細は、セクション27.12.8「パフォーマンススキーマ接続テーブル」を参照してください。

トランザクション集計ルール

トランザクションイベント収集は、分離レベル、アクセスモードまたは自動コミットモードに関係なく行われます。

トランザクションイベント収集は、サーバーによって開始された中断されていないすべてのトランザクション (空のトランザクションを含む) に対して発生します。

読取り/書込みトランザクションは通常、読取り専用トランザクションよりもリソース集中型であるため、トランザクションサマリーテーブルには、読取り/書込みトランザクションと読取り専用トランザクション用の個別の集計カラムが含まれます。

リソース要件は、トランザクション分離レベルによっても異なる場合があります。 ただし、サーバーごとに 1 つの分離レベルのみが使用されることを前提としており、分離レベルによる集計は提供されません。


関連キーワード:  テーブル, トランザクション, パフォーマンス, スキーマ, イベント, events, TIMER, READ, カラム, 要約