关注
MVCC(多版本并发控制)是MySQL中用于解决幻读等并发问题的重要机制之一。它通过在事务开始时创建一个视图,该视图包含了事务启动时数据库中所有活跃数据的一个快照,来实现事务的隔离性。
当一个事务在执行过程中读取数据时,MySQL会根据该事务启动时的视图来确定应该看到哪个数据版本。这意味着即使其他事务在该事务执行期间对数据进行了修改,该事务也只会看到它启动时的数据版本,而不会看到其他事务对数据的修改,从而避免了幻读的发生。
具体来说,MVCC解决幻读的过程如下:
当一个事务开始时,MySQL会为该事务创建一个事务ID,并为其生成一个快照视图,该视图包含了数据库中所有活跃数据的一个快照。
当事务执行SELECT操作时,MySQL会使用该事务的快照视图来确定应该看到哪个数据版本。如果其他事务正在修改或插入数据,而这些数据是在该事务启动之后才被修改或插入的,那么该事务将看到的是启动时的数据版本,而不会看到其他事务的修改。
这样,即使其他事务在执行过程中对数据进行了修改,当前事务也不会受到影响,从而避免了幻读的发生。
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习要如何选择和准备? #
10676次浏览 257人参与
# 牛友们的论文几号送审 #
19434次浏览 538人参与
# 携程求职进展汇总 #
203677次浏览 1710人参与
# 美团求职进展汇总 #
1632365次浏览 14723人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
22929次浏览 446人参与
# 字节求职进展汇总 #
709641次浏览 7188人参与
# 比亚迪秋招开啦,你打算投递吗? #
64833次浏览 555人参与
# 面试等了一周没回复,还有戏吗 #
98324次浏览 908人参与
# TCL求职进展汇总 #
102595次浏览 593人参与
# 机械人的工作环境真的很差吗 #
16110次浏览 104人参与
# 正在实习的你,几点下班 #
100925次浏览 728人参与
# 科大讯飞工作体验 #
15709次浏览 48人参与
# 满分简历要如何准备? #
16733次浏览 297人参与
# 稳定和高薪机械人更看重哪个? #
423156次浏览 5301人参与
# 运营人的第一份offer应该如何选 #
126516次浏览 1048人参与
# 面试被问第一学历差时该怎么回答 #
104339次浏览 659人参与
# 讲讲我的真实离职原因 #
33184次浏览 621人参与
# TCL提前批进度交流 #
28787次浏览 175人参与
# 听劝,这个公司值得去吗 #
406454次浏览 1564人参与
# 我想去国央企的原因 #
53180次浏览 325人参与
# 牛友打假中心 #
40418次浏览 2343人参与