关注
MVCC(多版本并发控制)是MySQL中用于解决幻读等并发问题的重要机制之一。它通过在事务开始时创建一个视图,该视图包含了事务启动时数据库中所有活跃数据的一个快照,来实现事务的隔离性。
当一个事务在执行过程中读取数据时,MySQL会根据该事务启动时的视图来确定应该看到哪个数据版本。这意味着即使其他事务在该事务执行期间对数据进行了修改,该事务也只会看到它启动时的数据版本,而不会看到其他事务对数据的修改,从而避免了幻读的发生。
具体来说,MVCC解决幻读的过程如下:
当一个事务开始时,MySQL会为该事务创建一个事务ID,并为其生成一个快照视图,该视图包含了数据库中所有活跃数据的一个快照。
当事务执行SELECT操作时,MySQL会使用该事务的快照视图来确定应该看到哪个数据版本。如果其他事务正在修改或插入数据,而这些数据是在该事务启动之后才被修改或插入的,那么该事务将看到的是启动时的数据版本,而不会看到其他事务的修改。
这样,即使其他事务在执行过程中对数据进行了修改,当前事务也不会受到影响,从而避免了幻读的发生。
查看原帖
点赞 评论
相关推荐
查看23道真题和解析
点赞 评论 收藏
转发
点赞 评论 收藏
转发
牛客热帖
正在热议
# 和牛牛一起刷题打卡 #
9359次浏览 817人参与
# 机械制造薪资爆料 #
347851次浏览 4098人参与
# 牛客帮帮团来啦!有问必答 #
1054074次浏览 15971人参与
# 通信硬件薪资爆料 #
250166次浏览 2358人参与
# 你收到了团子的OC了吗 #
524878次浏览 6234人参与
# 毕业租房也有小确幸 #
38201次浏览 3140人参与
# 你怎么评价今年的春招? #
9204次浏览 159人参与
# 提前批和秋招有什么区别 #
28807次浏览 695人参与
# 晒一晒我的offer #
3723238次浏览 57510人参与
# 面试中,你被问过哪些奇葩问题? #
19237次浏览 149人参与
# 春招你拿到offer了吗 #
397668次浏览 5743人参与
# 秋招开了,你想投哪些公司呢 #
132302次浏览 3423人参与
# 字节跳动工作体验 #
73343次浏览 2014人参与
# 实习生应该准时下班吗 #
88147次浏览 649人参与
# 来选选带哪个offer回家过年 #
191551次浏览 1836人参与
# 你的秋招进行到哪一步了 #
392523次浏览 6640人参与
# 腾讯工作体验 #
151106次浏览 1475人参与
# 我想象的工作vs实际工作 #
104090次浏览 1681人参与
# 百度工作体验 #
28514次浏览 286人参与
# 如何写一份好简历 #
308968次浏览 4408人参与