数据库死锁如何解决

数据库死锁是指多个并发事务中,出现了彼此相互等待的情况,导致所有事务卡在那里了,无法继续执行

原因:其实就是长时间无法获取想要的资源且无法放弃获取

如何解决?

大部分的现在数据管理系统都有自动干预功能,即可以选择多个or一个事务回滚来释放锁

还能手动强制回滚

mysql自己也能解决死锁

1.定期检测死锁机制,检测到死锁后,MySQL会自动选择终止一个or多个事务来释放锁

2.设置事务持有锁的超时时间(InnoDB_lock_wait_timeout)。即如果事务持有锁的时间超过这个阈值

就会对这个事务进行回滚

长事务