问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql可重复读的幻读解决方案

发布网友 发布时间:2022-12-28 09:09

我来回答

1个回答

热心网友 时间:2023-10-22 17:22

首先需要明确的就是“幻读”概念:隔离级别是可重复读,在一个事务中前后两次查询,查到了其他事务insert进来的数据。
强调的是读取到了其他事务插入进来的数据。
下面来论证一下可重复读下幻读的解决方案

先明确一下,for update语法就是当前读,也就是查询当前已经提交的数据,并且是带悲观锁的。没有for update就是快照读,也就是根据readView读取的undolog中的数据。

如果按照以上猜想,那么整个执行结果就违背了可重复读的隔离级别了。

那么我们再假设select * from TABLE where d = 5 for update;这条语句锁定的是所有被扫描到的数据。

这是因为T2阶段的update会被阻塞住,毕竟所有被扫描到的记录都被锁定了。

按照上述推理过程,很显然,即使锁定所有扫描到的数据行,也依然存在幻读的情况。违背了可重复读的隔离级别。

针对这个情况,我们要解决幻读的问题,那么就要求针对所有被扫描的记录行以及还不存在的d=5的记录行都给锁住。

至此,当前查询结果完全满足可重复读的隔离级别。

通过以上推论,我们可以总结一下,在可重复读的隔离级别下,解决幻读除了需要锁定所有扫描到的记录行外,还需要锁定行之间的间隙,也就是通过间隙锁来解决幻读的问题。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黑色芳纶哪家的好一些? 苏子叶我们中国叫什么苏子叶在中国叫什么 福州小车过户多少钱啊 福州车辆过户要多少钱 民生山西怎么查不到医疗保险信息 app查询养老金医疗保险方法介绍_百度... 太原医保查询平台(附入口二维码) 鉴定伤残等级去哪个部门 2024年中国铝业集团高管团队名单 2024中铝集团董事会成员一览 右枕位胎儿图怎么睡 一鸣楼宇对讲,刷卡开不了门,但分机能开,对讲能用,怎样维修? 黑眼圈和眼袋比较严重,有什么办法可以缓解,听说手术可以,是这样吗 人民银行推送企业信息要多久时间 受试者要求揭盲,如何处理? 被骗了钱超过48小时可以冻结 如何自制鱼饲料? 萧逸安慕希尺寸 为什么手机会突然黑屏呢? 广东电信用户申诉综合处理中心投诉收不到验证码 广东省电信用户申诉综合处理中心能解除吗 怎么样卸载GOOGLE和YAHOO的上网助手?? 2018法国队阵容 2022世界杯法国队8号队员是谁的儿子 2022年世界杯法国队员有打联赛的么 妄想山海中山异人村那个地方可以打狙 谁能告诉我OPPO Reno3私密保险箱设置方法? 二年级德育评语大全 慢性咽喉炎可以吃柿子吗 我得了咽喉炎可以吃柿子吗 你好,我在wps下面用系统母版做的pot,并且一路保存。后来重复打开为什么变成只有一页了? 汽车换机油的正确方法有哪些 关于MySQL的幻读问题,看这一篇就够了 mysql 解决可提交读、可重复读、幻读 mysql innodb RR能否完全解决幻读 如PP,PE,PS,ABS,PBT,PA,PSU,PC,POM,LCP,PVC,PET,PMMA,PEI,ABS/PC等,缩水是多少 神华神东煤矿招聘应届毕业生,考试吗? 瘦人吃什么长胖吃什么药 瘦人吃什么药能长胖啊!!!急急急!!! 国航金银卡,怎么在登机牌上区别 b站智能设备在哪 牛仔裤短了怎么加长好看 四川大学空调开一天多少度 形容要多思考的文言文 思考用古文怎么说 表示思考的文言文 形容思考的文言文 家里小泥鳅怎么养活? 一个人闯江湖的诗句 求关于江湖的诗句,最好是一个人仗剑江湖感觉比较洒脱的那类诗句, 日本首都的是东京吗 声音锁有什么用