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


26.51.29 INFORMATION_SCHEMA INNODB_TRX テーブル

INNODB_TRX テーブルには、InnoDB 内で現在実行されているすべてのトランザクションに関する情報が表示されます。これには、トランザクションがロックを待機しているかどうか、トランザクションの開始時、トランザクションが実行されている SQL ステートメント (ある場合) などが含まれます。

使用法については、セクション15.15.2.1「InnoDB トランザクションの使用および情報のロック」を参照してください。

INNODB_TRX テーブルには、次のカラムがあります:

  • TRX_ID

    InnoDB 内部の一意のトランザクション ID 番号。 これらの ID は、読取り専用および非ロックのトランザクションに対しては作成されません。 詳細は、セクション8.5.3「InnoDB の読み取り専用トランザクションの最適化」を参照してください。

  • TRX_WEIGHT

    トランザクションの重み。これは、トランザクションが変更した行の数とロックした行の数を反映したものです (ただし必ずしも正確な数ではありません)。 デッドロックを解決するために、InnoDB はロールバックする「被害者」として最小の重みを持つトランザクションを選択します。 非トランザクションテーブルを変更したトランザクションは、変更およびロックされた行の数に関係なく、他のトランザクションよりも重いとみなされます。

  • TRX_STATE

    トランザクションの実行状態。 許可される値は、RUNNING, LOCK WAIT, ROLLING BACK および COMMITTING です。

  • TRX_STARTED

    トランザクション開始時間。

  • TRX_REQUESTED_LOCK_ID

    TRX_STATELOCK WAIT の場合は、トランザクションが現在待機しているロックの ID。それ以外の場合は NULL。 ロックの詳細を取得するには、このカラムをパフォーマンススキーマ data_locks テーブルの ENGINE_LOCK_ID カラムと結合します。

  • TRX_WAIT_STARTED

    TRX_STATELOCK WAIT の場合、トランザクションがロックの待機を開始した時刻。それ以外の場合は NULL

  • TRX_MYSQL_THREAD_ID

    MySQL スレッド ID。 スレッドの詳細を取得するには、このカラムを INFORMATION_SCHEMA PROCESSLIST テーブルの ID カラムと結合しますが、セクション15.15.2.3「InnoDB トランザクションおよびロック情報の永続性と一貫性」 を参照してください。

  • TRX_QUERY

    トランザクションによって実行されている SQL ステートメント。

  • TRX_OPERATION_STATE

    トランザクションの現在の操作 (存在する場合)。それ以外の場合は NULL

  • TRX_TABLES_IN_USE

    このトランザクションの現在の SQL ステートメントを処理しているときに使用される InnoDB テーブルの数。

  • TRX_TABLES_LOCKED

    現在の SQL ステートメントで行ロックが有効になっている InnoDB テーブルの数。 (これらはテーブルロックではなく行ロックなので、一部の行がロックされているかどうかにかかわらず、通常、複数のトランザクションによるテーブルからの読み取りおよびテーブルへの書き込みを実行できます。)

  • TRX_LOCK_STRUCTS

    トランザクションで予約されたロックの数。

  • TRX_LOCK_MEMORY_BYTES

    メモリー内のこのトランザクションのロック構造にかかった合計サイズ。

  • TRX_ROWS_LOCKED

    このトランザクションによってロックされたおおよその数または行数。 この値には、物理的には存在するがトランザクションから認識できない削除マークが付けられた行が含まれる場合があります。

  • TRX_ROWS_MODIFIED

    このトランザクションで変更および挿入された行の数。

  • TRX_CONCURRENCY_TICKETS

    innodb_concurrency_tickets システム変数で指定された、スワップアウトされる前に現在のトランザクションが実行できる作業量を示す値。

  • TRX_ISOLATION_LEVEL

    現在のトランザクションの分離レベル。

  • TRX_UNIQUE_CHECKS

    現在のトランザクションで一意チェックがオンになっているか、オフになっているか。 たとえば、バルクデータロード中にオフになる場合があります。

  • TRX_FOREIGN_KEY_CHECKS

    現在のトランザクションで外部キーチェックがオンになっているか、オフになっているか。 たとえば、バルクデータロード中にオフになる場合があります。

  • TRX_LAST_FOREIGN_KEY_ERROR

    最後の外部キーエラーの詳細なエラーメッセージ (存在する場合)。それ以外の場合は NULL

  • TRX_ADAPTIVE_HASH_LATCHED

    適応ハッシュインデックスが現在のトランザクションによってロックされているかどうか。 適応型ハッシュインデックス検索システムがパーティション化されている場合、単一のトランザクションは適応型ハッシュインデックス全体をロックしません。 適応型ハッシュインデックスパーティション化は、デフォルトで 8 に設定されている innodb_adaptive_hash_index_parts によって制御されます。

  • TRX_ADAPTIVE_HASH_TIMEOUT

    アダプティブハッシュインデックスの検索ラッチをすぐに破棄するか、MySQL からの呼び出し全体で保持するか。 適応型ハッシュインデックスの競合がない場合、この値はゼロのままで、ステートメントは終了するまでラッチを予約します。 競合の間、ゼロまでカウントダウンし、ステートメントは各行ルックアップの直後にラッチを解放します。 適応ハッシュインデックス検索システムがパーティション化されている場合 (innodb_adaptive_hash_index_parts によって制御されます)、値は 0 のままです。

  • TRX_IS_READ_ONLY

    値 1 は、トランザクションが読取り専用であることを示します。

  • TRX_AUTOCOMMIT_NON_LOCKING

    値 1 は、トランザクションが FOR UPDATE 句または LOCK IN SHARED MODE 句を使用しない SELECT ステートメントであり、トランザクションにこのステートメントのみが含まれるように autocommit を有効にして実行されていることを示します。 このカラムと TRX_IS_READ_ONLY がどちらも 1 である場合、InnoDB は、テーブルデータを変更するトランザクションと関連付けられたオーバーヘッドを軽減するように、トランザクションを最適化します。

  • TRX_SCHEDULE_WEIGHT

    ロックを待機しているトランザクションに競合対応トランザクションスケジューリング (CATS) アルゴリズムによって割り当てられるトランザクションスケジュールの重み。 この値は、他のトランザクションの値に対して相対的です。 値が大きいほど重みが大きくなります。 値は、TRX_STATE カラムでレポートされる LOCK WAIT 状態のトランザクションに対してのみ計算されます。 ロックを待機していないトランザクションについては、NULL 値が報告されます。 TRX_SCHEDULE_WEIGHT の値は、TRX_WEIGHT の値とは異なります。この値は、目的に応じて異なるアルゴリズムによって計算されます。

mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G
*************************** 1. row ***************************
                    trx_id: 1510
                 trx_state: RUNNING
               trx_started: 2014-11-19 13:24:40
     trx_requested_lock_id: NULL
          trx_wait_started: NULL
                trx_weight: 586739
       trx_mysql_thread_id: 2
                 trx_query: DELETE FROM employees.salaries WHERE salary > 65000
       trx_operation_state: updating or deleting
         trx_tables_in_use: 1
         trx_tables_locked: 1
          trx_lock_structs: 3003
     trx_lock_memory_bytes: 450768
           trx_rows_locked: 1407513
         trx_rows_modified: 583736
   trx_concurrency_tickets: 0
       trx_isolation_level: REPEATABLE READ
         trx_unique_checks: 1
    trx_foreign_key_checks: 1
trx_last_foreign_key_error: NULL
 trx_adaptive_hash_latched: 0
 trx_adaptive_hash_timeout: 10000
          trx_is_read_only: 0
trx_autocommit_non_locking: 0
       trx_schedule_weight: NULL

メモ

  • このテーブルを使用すると、負荷の大きな同時ロードの時間中に生じるパフォーマンスの問題の診断に役立ちます。 その内容は、セクション15.15.2.3「InnoDB トランザクションおよびロック情報の永続性と一貫性」で説明しているように更新されます。

  • このテーブルをクエリーするには PROCESS 権限が必要です。

  • INFORMATION_SCHEMA COLUMNS テーブルまたは SHOW COLUMNS ステートメントを使用して、データ型やデフォルト値など、このテーブルのカラムに関する追加情報を表示します。


関連キーワード:  テーブル, SCHEMA, INFORMATION, トランザクション, INNODB, TRX, trx, ロック, InnoDB, ステートメント