如果一条sql被锁住怎么看它是被哪个线程锁住? 尤其是在事务里锁住 在sleep的线程,在processlist里看不到。 以往我遇到这个问题都是情急之下把sleep的全杀一遍。
现在可以这样。
select * from information_schema.INNODB_LOCK_WAITS;
select * from information_schema.INNODB_TRX where trx_id = 59538840624;
select * from information_schema.INNODB_LOCK_WAITS;
select * from information_schema.INNODB_TRX where trx_id = 59538840624;
第一条可以查出 request的事务id和block的事务id。 再用第2个sql查出thread id...