MySQL之死锁处理
死锁如何发生
- 进程1开始事务,修改a记录
- 进程2开始事务,修改b、然后修改a,此时进程2会卡住,等待进程1释放a记录
- 进程1尝试修改b记录,报错如下
1 | 1213 - Deadlock found when trying to get lock; try restarting transaction |
此时:
- 进程1事务被回滚(没有显式提示的rollback)
- 进程2事务继续
1 | mysql> select * from user; |
1 | mysql> begin; |
1 | 1213 - Deadlock found when trying to get lock; try restarting transaction |
此时:
1 | mysql> select * from user; |
1 | mysql> begin; |