完整版网站推广方案,wordpress登录数据库,wordpress 做社区,好看网站的浏览器在并发事务的执行时#xff0c;容易引起数据不一致,有一下几种情况 丢失修改 #xff1a;两个事务T1和T2读入同一数据并修改#xff0c;T2提交的结果破坏了T1提交的结果#xff0c;导致T1的修改被丢失 读脏数据 #xff1a;事务T1对数据D进行修改#xff0c;事务T2读取到…在并发事务的执行时容易引起数据不一致,有一下几种情况 丢失修改 两个事务T1和T2读入同一数据并修改T2提交的结果破坏了T1提交的结果导致T1的修改被丢失 读脏数据 事务T1对数据D进行修改事务T2读取到了事务T1修改的数据接着事务T1发生异常进行回滚事务T2读取到的就叫做“脏数据 不可重复读 :不可重复读是指事务T1读取数据后事务T2执行更新操作使T1无法再现前一次读取结果 数据库的三段加锁协议可以很好的解决以上问题 三段锁协议 共享锁S锁共享 (S) 用于不更改或不更新数据的操作只读操作如 SELECT 语句。 如果事务T对数据A加上共享锁后则其他事务只能对A再加共享锁不能加排他锁。获准共享锁的事务只能读数据不能修改数据。
排他锁X锁用于数据修改操作例如 INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。 如果事务T对数据A加上排他锁后则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据又能修改数据。
用三段锁协议来解决数据不一致的三种情况 1.一级封锁协议解决丢失修改 当事务在更新数据的时候给数据加上排他锁 原理加上排他锁之后其他事务不能对该数据加上任意锁在当前事务没有释放锁时其他事务不能进行对该数据的读写操作只有当前事务释放排他锁之后才能对该数据进行操作
2.二级封锁协议解决读脏数据 在一级封锁协议的基础上当事务在读取数据的时候加共享锁,读取完成后释放锁 原理加入共享锁之后不能对该数据加排他锁即其他事务不能进行修改数据。所以此时读取的数据一定是与数据库一致的
3.三级封锁线协议不可重复读 在一级封锁协议的基础上当事务在读取数据的时候加共享锁事务结束后释放 原理加入共享锁之后不能对该数据加排他锁即其他事务不能进行修改数据。如果读取完成后就释放那么其他事务此时可以修改该数据。当延迟到事务结束后释放其他事务就无法修改该数据了
事务的封锁级别不是越高就越好随着封锁粒度的增加会影响执行效率。 ———————————————— 版权声明本文为CSDN博主「豪满天下」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/weixin_43752167/article/details/100741144