通常情况下,持有该互斥行锁的会话会迅速的执行完相关操作,并释放掉持有的互斥锁(事务提交或者回滚),然后等待的会话在行锁等待超时时间内获得该互斥行锁,进行下一步操作。但在某些情况下,比如一个实例未感知到的来自客户端应用的数据库会话中断,持有该互斥行锁的会话长时间不释放该互斥行锁,此时如果有其他会话申请该互斥行锁,则会导致大量的行锁等待与行锁等待超时。
请您执行以下操作,查看存在当前正在执行的事务和等待锁的事务。执行以下SQL语句,查看正在执行的事务。
SELECT * FROM information_schema.INNODB_TRX;
执行以下SQL语句,查看等待锁的事务。
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
执行以下SQL语句,查看正在锁的事务。
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;