本文共 4334 字,大约阅读时间需要 14 分钟。
标题:
作者:©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.] #mysql 锁之间的依赖关系信息sql如下【打开注释部分的sql是查找最源头锁的thread_id线程id及关系】
SELECT distinct b.trx_id blocking_trx_id, b.trx_mysql_thread_id 源头锁thread_id, SUBSTRING(p. HOST, 1, INSTR(p. HOST, ':') - 1) blocking_host, SUBSTRING(p. HOST, INSTR(p. HOST, ':') + 1) blocking_port, IF(p.COMMAND = 'Sleep', p.TIME, 0) idel_in_trx, b.trx_query blocking_query, r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) wait_time, r.trx_query waiting_query, l.lock_table waiting_table_lock FROM information_schema.INNODB_LOCKS l LEFT JOIN information_schema.INNODB_LOCK_WAITS w ON w.requested_lock_id = l.lock_id LEFT JOIN information_schema.INNODB_TRX b ON b.trx_id = w.blocking_trx_id LEFT JOIN information_schema.INNODB_TRX r ON r.trx_id = w.requesting_trx_id LEFT JOIN information_schema. PROCESSLIST p ON p.ID = b.trx_mysql_thread_id /*JOIN (SELECT blocking_trx_id -- 查找最源头的trx_id FROM information_schema.INNODB_LOCK_WAITS ilw WHERE blocking_trx_id NOT IN (SELECT requesting_trx_id FROM information_schema.INNODB_LOCK_WAITS)) c ON c.blocking_trx_id = b.trx_id */ ORDER BY wait_time DESC; -- innodb_locks ## 当前出现的锁
mysql > desc 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_space | 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 ## 锁等待的对应关
mysql > desc 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 +-------------------+-------------+------+-----+---------+-------+ mysql>
-- innodb_trx ## 当前运行的所有事务 > desc 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 | |#事务开始时间; | trx_requested_lock_id | varchar(81) | YES | | NULL | |#innod INNODB_TRX b_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_level | 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 | |# +----------------------------+---------------------+------+-----+---------------------+-------+ 【源于本人笔记】 若有书写错误,表达错误,请指正...