1。目的
日常のデータベース管理のプロセスでは、MySQL データベースがトランザクションを実行しているかどうかをクエリする必要がある場合があります。これは、ビジネス上の問題のトラブルシューティングに便利です。information_schema
MySQL のシステム ライブラリ テーブルには、トランザクション内の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 UPDATE or を使用したLOCK IN SHARED MODE SELECT ステートメントがないことを意味します。 |
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 公式ドキュメント