2️⃣ 本深圳小公司 Java 后端

投票
面试官说我可重复读和读已提交的实现原理答的不对。

我答的主要是 MVCC 机制中 ReadView 的生成机制不同

面试官说不是的(´・_・`)
他说在是因为如下原因
在可重复读的隔离级别下一个先执行的事物去读取数据会给数据加共享锁,并且共享锁不会在读取完成后立即释放,因为共享锁和排他锁互斥的原因,其他事务此时想要更新数据就会被阻塞,无法完成更新,所以数据两次读取的值是相同的。

而在读已提交级别事物会立即释放,所以别的事物进行数据更新不会被阻塞能完成数据更新导致两次读取数据不一致

那他的意思是原理是通过控制锁的释放时间了

我的内心:
不是 mvcc?
select 语句默认不是不加任何锁?
阻塞?不主动给 select 语句后面加 lock in share mode 会有共享锁吗?i



#大家都开始春招面试了吗# # 

#数据人的面试交流地# #数据人offer决赛圈怎么选# #聊聊我眼中的AI# #牛客解忧铺#
全部评论
面试官没有明确区分普通SELECT和显式加锁的情况。对于普通SELECT,隔离级别的行为主要由MVCC决定,而不是锁的释放时间。
2 回复 分享
发布于 02-12 20:31 四川
很正常,秋招的时候有我也被一个面试官整得怀疑自己了,最后回去一查就是他错了。
点赞 回复 分享
发布于 02-14 22:14 福建
默认包是MVCC的,锁个鸡毛,反问问他他写mysql是不是每一条语句都加for update。
点赞 回复 分享
发布于 02-13 00:33 广东
点赞 回复 分享
发布于 02-12 20:06 湖南

相关推荐

04-10 23:44
已编辑
门头沟学院 Java
刚实习完没复习,直接被暴打📍面试公司:深信服📖面试问题:1.自我介绍2.问自我介绍提到的项目3.介绍SpringCloud组件4.Nacos用来做了什么,怎么做服务发现和服务调度,原理是什么    Nacos怎么根据相应配置找到对应的服务的    怎么根据应用名解析到不同ip的服务器下面的服务上(A服务怎么基于Nacos访问B服务)    Nacos底层的数据表5.Rabbitmq用来解决什么    解耦体现在哪方面    获取投递信息的策略有哪些6.SpringBoot 单例模式    懒汉和饿汉的区别    在需要的时候创建和类加载的时候创建有什么区别    懒汉创建大概率线程不安全,需要有个锁来保证唯一单例7.SpringBean的生命周期    .factories文件里的类通过什么加载    .factories文件里的有的通过别名配置,有的是全路径形式配置,通过什么加载(事件监听器)8.项目中的流量预测试怎么实现的    预测结果怎么判断实际流量和预测流量差值,提高准确率    偏差多少可以接受9.Docker反问进去做什么业务:这次是基础能力沟通,渠道和ai的开发流量算法、DP-R1模型,和简历技术栈比较重合面试官人很好,有没了解过的会给我解答一下,是我太菜了,底层原理看的很少
查看20道真题和解析
点赞 评论 收藏
分享
评论
2
7
分享

创作者周榜

更多
牛客网
牛客企业服务