关注
MVCC(多版本并发控制)是MySQL中用于解决幻读等并发问题的重要机制之一。它通过在事务开始时创建一个视图,该视图包含了事务启动时数据库中所有活跃数据的一个快照,来实现事务的隔离性。
当一个事务在执行过程中读取数据时,MySQL会根据该事务启动时的视图来确定应该看到哪个数据版本。这意味着即使其他事务在该事务执行期间对数据进行了修改,该事务也只会看到它启动时的数据版本,而不会看到其他事务对数据的修改,从而避免了幻读的发生。
具体来说,MVCC解决幻读的过程如下:
当一个事务开始时,MySQL会为该事务创建一个事务ID,并为其生成一个快照视图,该视图包含了数据库中所有活跃数据的一个快照。
当事务执行SELECT操作时,MySQL会使用该事务的快照视图来确定应该看到哪个数据版本。如果其他事务正在修改或插入数据,而这些数据是在该事务启动之后才被修改或插入的,那么该事务将看到的是启动时的数据版本,而不会看到其他事务的修改。
这样,即使其他事务在执行过程中对数据进行了修改,当前事务也不会受到影响,从而避免了幻读的发生。
查看原帖
点赞 评论
相关推荐
今天 09:52
哈尔滨工程大学 Java 点赞 评论 收藏
分享
04-09 14:12
浙江工业大学之江学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 要毕业了,再不说就来不及了 #
27567次浏览 350人参与
# 求职遇到的搞笑事件 #
207015次浏览 1072人参与
# 第3届现代汽车Code Faster急速编程挑战赛 #
4696次浏览 304人参与
# 体制内上岸心路历程 #
41641次浏览 243人参与
# 牛友的春节生活 #
133591次浏览 837人参与
# 打工人锐评公司红黑榜 #
217226次浏览 1073人参与
# 你最近因为什么迷茫? #
105921次浏览 972人参与
# 找工作时遇到的神仙HR #
1257548次浏览 5965人参与
# 通信硬件薪资爆料 #
1348428次浏览 7305人参与
# 为了找工作你投递了多少公司? #
115482次浏览 724人参与
# 远程面试的尴尬瞬间 #
370606次浏览 2076人参与
# 校招第一份工作你干了多久? #
159381次浏览 662人参与
# 你都用AI做什么 #
57062次浏览 536人参与
# 你是怎么和mt相处的? #
112711次浏览 589人参与
# 担心入职之后被发现很菜怎么办 #
310232次浏览 1244人参与
# 如果秋招能重来,我会____ #
107948次浏览 517人参与
# 面试反问你会问什么 #
214985次浏览 1976人参与
# 产品面经 #
302854次浏览 2227人参与
# 我的租房踩坑经历 #
227187次浏览 1208人参与
# 你觉得什么岗位会被AI替代 #
68109次浏览 395人参与
# 字节开奖 #
188174次浏览 961人参与


华为HUAWEI工作强度 1383人发布