-
在我们学过并发控制部分的内容后,我们得知并发会带来三个主要的问题:1.丢失修改。2.不可重复读。3.读“脏”数据。而我们的封锁协议就是为了解决以上三个问题的一类规则。
-
在讲基本的封锁协议之前,我们还要了解排他锁和共享锁的概念。为了方便记忆,小编建议大家记住前者叫做写锁,后者叫做读锁,根据名字我们就可以更容易记住前者是改写数据加X锁,后者是读数据加上S锁。
-
接下来我们开始学习一级封锁协议,它是指事务在修改数据之前必须对其加X锁,直到事务结束才释放。这种封锁协议可以防止丢失修改,并且还能保证事务时可以恢复的。
-
其次就是二级封锁协议,它是在一级封锁协议基础上增加事务,在读取数据之前必须先对其加S锁,读完之后释放S锁的一种规则。我们需要注意的是二级封锁协议不但能防止丢失修改,还可以进一步防止读“脏”数据。
-
最后是三级封锁协议。它是在一级封锁协议的基础上增加事务,在读取数据之前必须对其加S锁,直到事务结束才释放。有的小伙伴可能懵了,这不跟二级封锁协议一样吗?小编请这群小伙伴仔细看看,二级封锁协议是在读完之后才释放S锁,而三级封锁协议是在事务结束之后才释放。这两者的区别一定要注意。当然,三级封锁协议可以完美地同时解决并发控制的三个问题。
数据库封锁协议
最新推荐文章于 2023-06-28 00:29:07 发布