MySQL システムテーブル information_schema.INNODB_TRX の詳細な説明と現在実行中のトランザクションの表示

1。目的

日常のデータベース管理のプロセスでは、MySQL データベースがトランザクションを実行しているかどうかをクエリする必要がある場合があります。これは、ビジネス上の問題のトラブルシューティングに便利です。information_schemaMySQL のシステム ライブラリ テーブルには、トランザクション内のINNODB_TRXロックの有無、トランザクションの開始時刻、トランザクションで実行されたステートメントなどのデータ保守に対応する情報が含まれています。

2. 説明

2.1 実行中のトランザクションを問い合わせる

SELECT * FROM information_schema.innodb_trx;

2.2 フィールドの詳細な説明

分野 可能な値 説明する
TRX_ID トランザクション ID: 一意。これらの ID は、読み取り専用および非ロック トランザクション用には作成されません。
TRX_WEIGHT トランザクションの重み: 変更された行の数とロックされた行の数を測定します。デッドロックが発生した場合、エンジンは最初に重みの低いトランザクションをロールバックします。非トランザクション テーブルを変更するトランザクションは、変更およびロックされた行の数に関係なく、他のトランザクションより重いとみなされます。
TRX_STATE
  • ランニング
  • ロックウェイト
  • ロールバック
  • コミット中
    トランザクション実行ステータス
    TRX_STARTED トランザクション開始時刻 (形式: 2022-11-23 10:18:38)
    TRX_REQUESTED_LOCK_ID INNODB_LOCKSロック待ちID、対応するテーブルのIDを結合できます
    TRX_WAIT_STARTED ロック待ち開始時間
    TRX_MYSQL_THREAD_ID PROCESSLIST対応するテーブルデータを結合できるMySQLのスレッドID
    TRX_QUERY トランザクション処理で実行されるSQL文
    TRX_OPERATION_STATE 現状
    TRX_TABLES_IN_USE トランザクション中に使用されるテーブルの数
    TRX_TABLES_LOCKED トランザクション中にロックされたテーブルの数
    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 1 または 0 一意性チェックのアイデンティティを開くか、大量のデータをロードするときに閉じるか
    TRX_FOREIGN_KEY_CHECKS 1 または 0 外部キーチェックのフラグを開くか、大量のデータをロードするときに閉じるか
    TRX_LAST_FOREIGN_KEY_ERROR 最後の外部キーのエラー メッセージ
    TRX_ADAPTIVE_HASH_LATCHED アダプティブ ハッシュ インデックスが現在のトランザクションによってロックされているかどうかをinnodb_adaptive_hash_index_parts設定します。
    TRX_ADAPTIVE_HASH_TIMEOUT アダプティブ ハッシュ インデックスの検索ロックの所有を直ちに放棄するか、MySQL からの呼び出し全体にわたって保持するか。
    TRX_IS_READ_ONLY 1 は読み取り専用を意味します
    TRX_AUTOCOMMIT_NON_LOCKING 1 は、FOR UPDATEor を使用したLOCK IN SHARED MODESELECT ステートメントがないことを意味します。

    3. ケース

    3.1 テーブル構造

    MySQL [myhr]> desc city;         
    +--------------+--------------+------+-----+---------+-------+
    | Field        | Type         | Null | Key | Default | Extra |
    +--------------+--------------+------+-----+---------+-------+
    | city_code    | varchar(255) | NO   | PRI | NULL    |       |
    | city_name    | varchar(255) | YES  |     | NULL    |       |
    | parent_code  | varchar(255) | YES  | MUL | NULL    |       |
    | key_cities   | varchar(255) | YES  |     | NULL    |       |
    | abbreviation | varchar(255) | YES  |     | NULL    |       |
    | city_level   | varchar(255) | YES  |     | NULL    |       |
    +--------------+--------------+------+-----+---------+-------+
    

    データ:

    
    MySQL [myhr]> select * from city limit 10;
    +-----------+--------------+-------------+------------+--------------+------------+
    | city_code | city_name    | parent_code | key_cities | abbreviation | city_level |
    +-----------+--------------+-------------+------------+--------------+------------+
    | 110000    | 北京市       | 0           | NULL       | NULL         | NULL       |
    | 110100    | 北京市       | 110000      | NULL       | NULL         | NULL       |
    | 110101    | 东城区       | 110100      | NULL       | NULL         | NULL       |
    | 110102    | 西城区       | 110100      | NULL       | NULL         | NULL       |
    | 110105    | 朝阳区       | 110100      | NULL       | NULL         | NULL       |
    | 110106    | 丰台区       | 110100      | NULL       | NULL         | NULL       |
    | 110107    | 石景山区     | 110100      | NULL       | NULL         | NULL       |
    | 110108    | 海淀区       | 110100      | NULL       | NULL         | NULL       |
    | 110109    | 门头沟区     | 110100      | NULL       | NULL         | NULL       |
    | 110111    | 房山区       | 110100      | NULL       | NULL         | NULL       |
    +-----------+--------------+-------------+------------+--------------+------------+
    

    3.2 トランザクションの表示

    MySQL [(none)]> SELECT * FROM information_schema.innodb_trx\G;
    *************************** 1. row ***************************
                        trx_id: 22018017
                     trx_state: LOCK WAIT
                   trx_started: 2022-11-23 12:43:48
         trx_requested_lock_id: 22018017:1028:5:2
              trx_wait_started: 2022-11-23 12:43:48
                    trx_weight: 2
           trx_mysql_thread_id: 1635
                     trx_query: update city set city_level=12  where city_code=110100
           trx_operation_state: starting index read
             trx_tables_in_use: 1
             trx_tables_locked: 1
              trx_lock_structs: 2
         trx_lock_memory_bytes: 1136
               trx_rows_locked: 1
             trx_rows_modified: 0
       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: 0
              trx_is_read_only: 0
    trx_autocommit_non_locking: 0
    *************************** 2. row ***************************
                        trx_id: 22017539
                     trx_state: RUNNING
                   trx_started: 2022-11-23 12:42:23
         trx_requested_lock_id: NULL
              trx_wait_started: NULL
                    trx_weight: 14
           trx_mysql_thread_id: 1633
                     trx_query: NULL
           trx_operation_state: NULL
             trx_tables_in_use: 0
             trx_tables_locked: 1
              trx_lock_structs: 13
         trx_lock_memory_bytes: 1136
               trx_rows_locked: 3686
             trx_rows_modified: 1
       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: 0
              trx_is_read_only: 0
    trx_autocommit_non_locking: 0
    2 rows in set (0.00 sec)
    

    参考ドキュメント:
    MySQL 公式ドキュメント

    おすすめ

    転載: blog.csdn.net/oschina_41731918/article/details/128005386