INNODB_TRX
テーブルには、トランザクションがロックを待機しているかどうか、トランザクションが開始した時点、トランザクションが実行している SQL ステートメント (存在する場合) など、InnoDB
内部で現在実行している (読み取り専用トランザクションを除く) すべてのトランザクションに関する情報が含まれます。
表 21.4 INNODB_TRX のカラム
カラム名 | 説明 |
---|---|
TRX_ID |
InnoDB 内部の一意のトランザクション ID 番号。(MySQL 5.6 以降、これらの ID は、読み取り専用で非ロックのトランザクションでは作成されません。詳細は、セクション14.13.14「InnoDB の読み取り専用トランザクションの最適化」を参照してください。) |
TRX_WEIGHT |
トランザクションの重み。これは、トランザクションが変更した行の数とロックした行の数を反映したものです (ただし必ずしも正確な数ではありません)。デッドロックを解決するために、InnoDB は、ロールバックする「対象」として重みがもっとも小さなトランザクションを選択します。非トランザクションテーブルを変更したトランザクションは、変更された行およびロックされた行の数に関係なく、ほかのトランザクションより重みが高いと見なされます。 |
TRX_STATE |
トランザクション実行の状態。RUNNING 、LOCK WAIT 、ROLLING BACK 、または COMMITTING のいずれかです。 |
TRX_STARTED |
トランザクションの開始時間。 |
TRX_REQUESTED_LOCK_ID |
トランザクションが現在待機しているロック ID (TRX_STATE が LOCK WAIT である場合。それ以外は NULL )。ロックに関する詳細は、LOCK_ID で INNODB_LOCKS と結合することによって参照できます。 |
TRX_WAIT_STARTED |
トランザクションがロックを待機し始めた時間 (TRX_STATE が LOCK WAIT の場合。それ以外は NULL )。 |
TRX_MYSQL_THREAD_ID |
MySQL スレッド ID。ID で PROCESSLIST と結合する場合に使用できます。セクション14.14.2.3.1「PROCESSLIST データとの不整合の可能性」を参照してください。 |
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 |
最後の FK エラーの詳細なエラーメッセージか、NULL 。 |
TRX_ADAPTIVE_HASH_LATCHED |
アダプティブハッシュインデックスが現在のトランザクションによってロックされているかどうか。(一度に 1 つのトランザクションだけがアダプティブハッシュインデックスを変更できます。) |
TRX_ADAPTIVE_HASH_TIMEOUT |
アダプティブハッシュインデックスの検索ラッチをすぐに破棄するか、MySQL からの呼び出し全体で保持するか。AHI 競合がない場合、この値はゼロのままで、ステートメントは終了するまでラッチを保持します。競合の間、ゼロまでカウントダウンし、ステートメントは各行ルックアップの直後にラッチを解放します。 |
TRX_IS_READ_ONLY |
1 の値は、トランザクションが読み取り専用であることを示します (5.6.4 以降。) |
TRX_AUTOCOMMIT_NON_LOCKING |
1 の値は、トランザクションが、 |
例:
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX \G
*************************** 1. row ***************************
trx_id: 3298
trx_state: RUNNING
trx_started: 2014-11-19 13:54:39
trx_requested_lock_id: NULL
trx_wait_started: NULL
trx_weight: 316436
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: 1621
trx_lock_memory_bytes: 243240
trx_rows_locked: 759343
trx_rows_modified: 314815
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
注:
このテーブルを使用すると、負荷の大きな同時ロードの時間中に生じるパフォーマンスの問題の診断に役立ちます。その内容は、セクション14.14.2.3「InnoDB トランザクションおよびロックテーブルのデータ永続性および一貫性」で説明しているように更新されます。
DESCRIBE
またはSHOW COLUMNS
を使用して、データ型とデフォルト値を含む、このテーブルのカラムに関する追加情報を表示します。このテーブルをクエリーするには
PROCESS
権限が必要です。使用法については、セクション14.14.2.1「InnoDB トランザクションおよびロックテーブルの使用例」を参照してください。