MySQL并发控制不当,引发的死锁问题案例
在MySQL中,如果并发控制不当,可能会引发死锁问题。以下是一个典型的死锁案例:
场景:假设有两个事务T1和T2,它们都需要两个资源:资源R1(由T1获取)和资源R2(由T2获取)。
T1的执行顺序:
- 获取资源R1
- 试图获取资源R2
T2的执行顺序:
- 获取资源R2
- 试图获取资源R1
问题:如果按照这两个事务的执行顺序,它们将相互等待对方释放资源,从而引发死锁。
解决方法:在设计并发控制策略时,应遵循银行家算法(或是MySQL的一些优化规则,如减小锁的粒度等)来避免死锁的发生。
还没有评论,来说两句吧...