首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
Lyh0
2019-08-22 15:53
已编辑
Java
关注
已关注
取消关注
MVCC解决幻读
请求各位大佬,MVCC为什么不能避免幻读呢?根据版本号,每次SELECT出来的数据的创建版本号不是都小于当前事务版本号,那怎么还有幻读呢?
#笔试题目#
提示
全部评论
推荐
最新
楼层
球球Offer了
Java
你得看看快照读和当前读
7
送花
回复
分享
发布于 2019-08-22 15:54
RDD2DAG
大数据开发工程师
select属于快照读操作,不会出现幻读,只有update、delete这种当前读操作才会出现幻读现象。 幻读的话,我给你举个例子,假如A事务正在查询id<10的所有数据,只存在id为1~7的数据,8、9并不存在,此时B事务向数据库插入id为8的数据,那么事务A就会出现幻读现象,本来是不存在id为8的数据的,但是像出现幻觉一样读取到了,这就是幻读。 解决的办法是加上next-key锁(也就是行锁+gap锁),gap锁会锁着id为8、9的两个位置,阻止事务A读取数据的时候,事务B向数据库插入数据,这样就避免幻读了
点赞
送花
回复
分享
发布于 2019-08-22 16:31
网易互娱
校招火热招聘中
官网直投
高木同学
阿里巴巴_供应链平台事业部_Java开发
举个例子,假设说数据库里有一张表一共有3列,第一列是自增主键,隔离级别为RR级别。 原先数据库表里有3条数据 1 1 1 2 2 2 3 3 3 ------- 此时我开启一个事务A,执行一下select * ,然后再开启一个事务B,insert一条 444并commit。 之后再回到事务A,再次执行select *,毫无疑问111222333,符合可重复读。 再然后我执行一条 sql :update 第三列 = 5 之后再select 结果为 1 1 5 2 2 5 3 3 5 4 4 5 -------- 此时发生了幻读,要解决这个问题也很简单,楼上基本说了,就不多解释了。 如有错误麻烦指出。
点赞
送花
回复
分享
发布于 2019-08-22 16:32
crud_boy_arthur
阿里巴巴_数字供应链_开发工程师
select是非锁定读,本来就不会幻读,update这种锁定读才会出现幻读,需要使用间隙锁避免幻读
点赞
送花
回复
分享
发布于 2019-08-22 15:59
快手无敌内推
快手_高级Java开发工程师
RR级别下每个事务会创建一个快照,RR级别默认第一条SQL才创建快照,依据快照中记录的事务的高水位和低水位判断数据是否可见,低于低水位的必然可见,高于高水位的不可见,如果介于两者之间,也处于活动中的事务id的数据不可见,由此解决的,
2
送花
回复
分享
发布于 2019-08-22 16:03
C.A.Y.P
Java
mvcc是快照读,本身就解决了幻读,当前读的情况下,用间隙锁解决了幻读
点赞
送花
回复
分享
发布于 2019-08-22 16:23
我是一只快乐的小菜鸡
字节跳动_android开发
mvcc解决的是可重复读问题,next Key lock解决幻读问题
点赞
送花
回复
分享
发布于 2019-08-22 15:55
快手无敌内推
快手_高级Java开发工程师
谁跟你说的每次查出来的数据的版本号都小于当时事务编号的??
点赞
送花
回复
分享
发布于 2019-08-22 15:59
kafkal
杭州电子科技大学
幻读是会发现多了数据或者少了数据吧
点赞
送花
回复
分享
发布于 2019-08-22 15:49
ChessC
Java
不能避免幻读??
点赞
送花
回复
分享
发布于 2019-08-22 15:51
你好像一个人
前端工程师
不是默认开启了next keylock 已经避免幻读了吗
点赞
送花
回复
分享
发布于 2019-08-22 15:52
offer来我怀里
Java
可重复读级别下通过间隙锁,应该是能解决幻读的问题
点赞
送花
回复
分享
发布于 2019-08-22 15:54
等offer的小男孩
家里蹲
能避免幻读吧,或者可重复读+间隙锁
点赞
送花
回复
分享
发布于 2019-08-22 15:56
池里游啊游
Java
因为mvcc里面的update是当前读?求大佬解释
点赞
送花
回复
分享
发布于 2019-08-22 16:18
白夜之星
Java
可以避免。分快照读,当前读
点赞
送花
回复
分享
发布于 2019-08-22 19:27
皮卡丘啦啦啦
微软_软件工程师
mvcc可以解决幻读,因为读取的是一个历史的快照。如果对数据实时性要求高的话,不推荐。
点赞
送花
回复
分享
发布于 2019-08-22 20:31
网易互娱
校招火热招聘中
官网直投
相关推荐
牛客545265457号
今天 10:55
北京邮电大学 计算机类
腾讯PCG后端开发 挑战最速OC
5.13 一面5.15 二面5.16 主管面5.17早上 HR面 结束完后云证5.20 HR打电话确认是否能接offer 说大概5.21 5.22给offer5.21 早上收到offer邮件之前面了一个半月,一个offer也没,感谢腾子,光速完成所有流程,化身鹅小子了
投递腾讯等公司7个岗位 >
点赞
评论
收藏
转发
黑猫警长嘟嘟嘟
05-20 11:55
北京科技大学 计算机类
滴滴秋储许愿offer
已经oc三天了 快发快发
点赞
评论
收藏
转发
匿名牛油
不愿透露姓名的神秘牛友
04-05 09:23
Java后端简历求指导
目前简历根本过不了中大厂,想知道问题出在哪里,求大佬们的指点#简历被挂麻了,求建议##实习,投递多份简历没人回复怎么办##正在实习的碎碎念##简历#
简历被挂麻了,求建议
实习,投递多份简历没人回复怎么办
点赞
评论
收藏
转发
blackstone99
04-22 23:04
上海大学 计算机类
入职快手了
虽然感觉很累,但是这星期学到了很多东西
点赞
评论
收藏
转发
Neptune_JNQ
昨天 15:44
门头沟学院
虾皮 shopee 后端暑期实习一二面
一面:八股车轮战 1hMySQL:MVCC、索引Redis:持久化计网八股:三挥、HTTPS 握手、流控拥控操作系统八股:线程上下文切换时切换的具体内容Linux 根据内容查询文件如何排查进程占用内存过多的情况算法:口述:解释快排口述:非递归怎么后序遍历二叉树写题:三数之和二面:项目拷打 + 相关八股 1h项目拷打:秒杀项目的难点、数据表设计MySQL:事务特性、原子性怎么实现MVCC(给了个 MVCC 场景没听懂,糊弄下引到项目中的一个比并发控制的问题上了)InnoDB 对比 MyISAM操作系统:文件系统了解吗(扯了点 inode、块)rm -rf 后块上的数据什么时候被删除算法:口述:怎...
查看16道真题和解析
点赞
评论
收藏
转发
1
32
评论
分享
回复帖子
提到的真题
返回内容
招聘动态
查看更多
网易游戏(互娱)
2025届实习生培养项目
滴滴
2025届秋招储备实习生招聘
全站热榜
1
...
因为找实习和女朋友分手了
1.0W
2
...
开摆了,写小说去了
6862
3
...
【有奖活动】浅聊一下我的实习⭐
6698
4
...
双非本 腾讯WXG暑期已offer | 附面经
6534
5
...
没offer的我们也很优秀偶
6406
6
...
写在最后,一个大专人9年的自述
5280
7
...
华为暑期开奖
5197
8
...
华为实习offer!终于告一段落了
4068
9
...
快手二面凉经
3679
10
...
滴滴秋储-服务端开发 OC
3666
正在热议
#
牛客帮帮团来啦!有问必答
#
829830次浏览
13109人参与
#
机械制造薪资爆料
#
320859次浏览
3741人参与
#
晒一晒我的offer
#
3475962次浏览
55323人参与
#
金三银四,你有感觉到吗
#
330219次浏览
4229人参与
#
0offer是寒冬太冷还是我太菜
#
429101次浏览
4952人参与
#
实习生如何通过转正
#
27227次浏览
361人参与
#
海康威视求职进展汇总
#
102073次浏览
1218人参与
#
如何缓解入职前的焦虑
#
35806次浏览
354人参与
#
我在牛爱网找对象
#
50711次浏览
332人参与
#
毕业租房也有小确幸
#
27297次浏览
1493人参与
#
荣耀求职进展汇总
#
71380次浏览
725人参与
#
实习生应该准时下班吗
#
81080次浏览
595人参与
#
软件开发投递记录
#
479711次浏览
7248人参与
#
如果可以选,你最想从事什么工作
#
186746次浏览
3087人参与
#
春招已经启动啦 硬件uu开始投了吗?
#
87343次浏览
683人参与
#
实习必须要去大厂吗?
#
14044次浏览
223人参与
#
求职遇到的搞笑事件
#
19750次浏览
287人参与
#
你觉得找工作该拿大厂还是小厂练手
#
61936次浏览
873人参与
#
你的秋招进行到哪一步了
#
369272次浏览
6406人参与
#
国企vs私企,你更想去?
#
20339次浏览
205人参与
牛客网
牛客企业服务