MySQL在并发场景下的问题及解决思路
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
*** WE ROLL BACK TRANSACTION (2) InnoDB状态有许多指标,这里我们截取死锁相干的信息,可以看出InnoDB可以输出最近呈现的死锁信息,着实许多死锁监控器材也是基于此成果开拓的。 在死锁信息中,表现了两个事宜守候锁的相干信息(蓝色代表事宜1、绿色代表事宜2),重点存眷:WAITING FOR THIS LOCK TO BE GRANTED和HOLDS THE LOCK(S)。 WAITING FOR THIS LOCK TO BE GRANTED暗示当前事宜正在守候的锁信息,从输出功效看失事宜1正在守候heap no为5的行锁,事宜2正在守候 heap no为7的行锁; HOLDS THE LOCK(S):暗示当前事宜持有的锁信息,从输出功效看失事宜2持有heap no为5行锁。 从输出功效看出,最后InnoDB回滚了事宜2。 那么InnoDB是怎样搜查出死锁的呢? 我们想到最简朴要领是若是一个事宜正在守候一个锁,假如守候时刻高出了设定的阈值,那么该事宜操纵失败,这就停止了多个事宜互相耐久待的环境。参数innodb_lock_wait_timeout正是用来配置这个锁守候时刻的。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |