数据库死锁产生原因及场景
(1) 什么是数据库死锁
两个或者两个以上的事务同时对一批资源占用锁,并形成循环,就会造成事务死锁,
(2) 死锁产生的必要条件
- 互斥条件:一个资源每次只能被一个进程/线程使用
- 循环等待:若干个进程/线程之间形成一种头尾相接的循环等待资源关系
- 请求与保持:一个进程因请求资源而阻塞,对已获得的资源保持不放。
- 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺
(3) 如何预防死锁
- 按同一顺序访问对象
- 避免事务中的用户交互
- 保持事务剪短并在一个批处理中
- 使用低隔离级别
- 使用绑定连接
参考链接
https://blog.csdn.net/qq_28666081/article/details/113777724