MySQL死锁的原理,案例,解决方案 死锁检测:死锁检测是InnoDB的一个处理机制,每一个事务在申请一个锁的时候,发现申请这个锁需要等待,就会进入到死锁检测的过程。 死锁是数据库在并发事务场景里面场景的问题,原因是两个(或以上)不同的事务互相持有了对方需要的资源.
死锁检测的处理过程: 1.把事务等待列表和锁等待信息列表通过事务信息进行wait-for graph 检测,如果发现有闭环,则回滚undo log 量少的事务; 2.死锁检测本身也会算检测本身所需要的成本
死锁检测最后有三种情况 1.等待图检测到死锁 2.等待图检测过久,超过了阈值 3.没检测到死锁,退出死锁检测