MySQLトランザクション・ロックを表示します.sql

3029 ワード

概要
時々show engine innodb statusを見て、show full processlistと結合します.これ以上だめなら、次の3つのビューを見てください.
ビュー構造の説明
INNODB_LOCKS
+————-+———————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +————-+———————+——+—–+———+——-+ | lock_id|varchar(81)|NO|||||ロックID|lock_trx_id|varchar(18)|NO||||||ロックを持つトランザクションID|lock_mode|varchar(32)|NO||||ロックモード|lock_type|varchar(32)|NO||||ロックタイプ|lock_table|varchar(1024)|NO|||||ロックされたテーブル|lock_index|varchar(1024)|YES||NULL||ロックされたインデックス|lock_スペース|bigint(21)unsigned|YES||NULL||ロックされた表領域番号|lock_Page|bigint(21)unsigned|YES||NULL||ロックされたページ番号|lock_rec|bigint(21)unsigned|YES||NULL||ロックされたレコード番号|lock_Data|varchar(8192)|YES||NULL|||ロックされたデータ+————————————+——————+——————+——————+——————+————+——————+——————+————+
INNODB_LOCK_WAITS
+——————-+————-+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra | +——————-+————-+——+—–+———+——-+ | requesting_trx_id|varchar(18)|NO||||||ロックを要求するトランザクションID|requested_lock_id|varchar(81)|NO||||||ロックを要求するロックID|blocking_trx_id|varchar(18)|NO||||||現在ロックされているトランザクションID|blocking_lock_id|varchar(81)|NO||||||#現在ロックされているロックID+——————————+——————+——————+——————+————+————+——————+——————+——————+
INNODB_TRX
+—————————-+———————+——+—–+———————+——-+ | Field | Type | Null | Key | Default | Extra | +—————————-+———————+——+—–+———————+——-+ | trx_id|varchar(18)|NO|||||トランザクションID|trx_state|varchar(13)|NO|||||トランザクションステータス:|trx_started|datetime|NO||0000-00-00 00 00 00:00||トランザクション開始時間;|trx_requested_lock_id | varchar(81) | YES | | NULL | |#innodb_locks.lock_id | trx_wait_started|datetime|YES||NULL||トランザクション開始待ち時間|trx_weight | bigint(21) unsigned | NO | | 0 | |# | trx_mysql_thread_id|bigint(21)unsigned|NO||0||トランザクションスレッドID|trx_Query|varchar(1024)|YES||NULL||具体SQL文|trx_operation_state|varchar(64)|YES||NULL||トランザクション現在の操作ステータス|trx_tables_in_use|bigint(21)unsigned|NO||0|||トランザクションで使用されるテーブルの数|trx_tables_locked|bigint(21)unsigned|NO||0||トランザクションにロックがいくつあるか|trx_lock_structs | bigint(21) unsigned | NO | | 0 | |# | trx_lock_memory_bytes|bigint(21)unsigned|NO||0||トランザクションロックメモリサイズ(B)|trx_rows_locked|bigint(21)unsigned|NO||0||トランザクションロックの行数|trx_rows_modified|bigint(21)unsigned|NO||0||トランザクション変更の行数|trx_concurrency_tickets|bigint(21)unsigned|NO||0||トランザクションおよび請求書数|trx_isolation_レベル|varchar(16)|NO||||||トランザクション独立性レベル|trx_unique_checks|int(1)|NO||0|||一意性チェック|trx_foreign_key_checks|int(1)|NO||0||#外部キーチェック|trx_last_foreign_key_Error|varchar(256)|YES||NULL||最後の外部キーエラー|trx_adaptive_hash_latched | int(1) | NO | | 0 | |# | trx_adaptive_hash_timeout | bigint(21) unsigned | NO | | 0 | |# +—————————-+———————+——+—–+———————+——-+

参照文:

show full processlist;
     
SELECT  trx_mysql_thread_id, trx_query 
FROM
    information_schema.INNODB_TRX TR
WHERE trx_id IN ( SELECT DISTINCT blocking_trx_id 
FROM
    information_schema.INNODB_LOCK_WAITS LW );
    
SELECT  * FROM  information_schema.INNODB_TRX TR;
    
SELECT * FROM information_schema.INNODB_LOCKS IL;
    
SELECT * FROM information_schema.INNODB_LOCK_WAITS LW;