可以查看锁的信息,TRX_MYSQL_THREAD_ID 为processlist的表中的会话id,用于kill
select trx_id,trx_state,trx_started,trx_requested_lock_id,trx_wait_started,trx_weight,trx_mysql_thread_id,trx_query
from innodb_trx
可以查看锁的模式,类型,锁的表
select lock_id,lock_trx_id,lock_mode,lock_type,lock_table,lock_index from innodb_locks
可以查看到请求的事务ID,请求的锁id。阻塞事务id,阻塞锁id。
select requesting_trx_id,requested_lock_id,blocking_trx_id,blocking_lock_id from INNODB_LOCK_WAITS
查看当前的会话
select * from information_schema.processlist
根据INNODB_LOCK_WAITS的requesting_trx_id与blocking_trx_id的值在innodb_trx中查找对应的行信息
select trx_id,trx_state,trx_started,trx_requested_lock_id,trx_wait_started,trx_weight,trx_mysql_thread_id,trx_query
from innodb_trx
where trx_id in (requesting_trx_id,blocking_trx_id);
再根据innodb_trx表中的TRX_MYSQL_THREAD_ID 的值
查看为processlist的表中的会话id,用于kill。根据情况,决定kill掉哪条SQL语句。