数据库中的两段封锁协议的规则是先加锁,后解锁,所以可以保证冲突可串行化,来保证并发的一致性。
但是两段封锁协议并不满足一级协议(即在事务commit时释放锁)。如果:事务1
修改数据A和B, 事务2
修改数据B. 事务1
先获取A和B的锁,修改A的值,然后释放A的锁。在事务2
获取A的锁的同时,如果事务1
修改B失败,要进行roll back, 会发生什么?事务2
是否对A数据脏读?
数据库中的两段封锁协议的规则是先加锁,后解锁,所以可以保证冲突可串行化,来保证并发的一致性。
但是两段封锁协议并不满足一级协议(即在事务commit时释放锁)。如果:事务1
修改数据A和B, 事务2
修改数据B. 事务1
先获取A和B的锁,修改A的值,然后释放A的锁。在事务2
获取A的锁的同时,如果事务1
修改B失败,要进行roll back, 会发生什么?事务2
是否对A数据脏读?
8 回答3k 阅读
2 回答5.3k 阅读✓ 已解决
5 回答1.5k 阅读
3 回答2.3k 阅读
2 回答2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答917 阅读✓ 已解决