HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    不可重复读(不可重复读会导致什么问题)

    发布时间:2023-04-14 18:04:52     稿源: 创意岭    阅读: 131        

    大家好!今天让创意岭的小编来大家介绍下关于不可重复读的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    不可重复读(不可重复读会导致什么问题)

    一、三级封锁协议

    锁的类型:

    基本的封锁类型有两种: 排它锁(X锁) 共享锁(S锁)

    X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A

    S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。

    若事务T对数据对象A加了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁)。在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A。

    更多锁的类型和隔离级别参考 SQL 隔离级别

    丢失更新(一类丢失更新)

    撤销一个事务时,把其他事务已提交的更新数据覆盖

    脏读

    一个事务读到另一个事务未提交的更新数据

    不可重复读

    一个事务读到另一个事务已提交的更新数据

    覆盖更新(二类丢失更新)

    这是不可重复读中的特例,一个事务覆盖另一个事务已提交的更新数据

    虚读(幻读)

    一个事务读到另一个事务已提交的新插入的数据

    在运用X锁和S锁对数据对象加锁时,还需要约定一些规则。例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)

    一级封锁协议(对应read uncommited)

    事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。

    一级封锁协议可以 防止丢失修改 ,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。

    在一级封锁协议中,如果 仅仅是读数据不对其进行修改,是不需要加锁的 ,它 不能保证可重复读和不读“脏”数据

    二级封锁协议(对应read commited)

    在一级封锁协议之上,事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。

    二级封锁协议除防止了丢失修改,还可以 进一步防止读“脏”数据

    但在二级封锁协议中,由于读完数据后即可释放S锁,所以它 不能保证可重复读

    三级封锁协议(对应reapetable read)

    在一级封锁协议之上,事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放S锁。

    三级封锁协议除防止了丢失修改和不读“脏”数据外,还 进一步防止了不可重复读

    四级封锁协议(对应serialization)

    四级封锁协议是对三级封锁协议的增强,其实现机制也最为简单,直接对事务中所读取或者更改的数据所在的表 加表锁 ,也就是说,其他事务不能读写该表中的任何数据。这样五类并发问题都得以避免!

    二、

    三、

    四、

    以上就是关于不可重复读相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    snapchat不可以看剩余电量吗(snapchat在哪看照片)

    杭州联合银行可不可靠(杭州联合银行怎么样,值得去吗)

    如何避免不可重复读(如何避免不可重复读英语)

    杭州3月11日天气(杭州3月11日天气情况)

    刷公众号浏览量违法吗(刷公众号浏览量违法吗知乎)