MVCC 及 MYSQL的Repeatable Read隔离级别的幻读
当前读 和 快照读
MVCC,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。不过可能会读到历史数据。
MVCC 作用于普通的select语句。
快照读,读取的是记录的可见版本 (有可能是历史版本),不用加锁。主要应用于无需加锁的普通查询(select)操作。
当前读,是一种悲观锁的操作。它会对当前读取的数据进行加锁,所以读到的数据都是最新的。主要包括以下几种操作:
select lock in share mode(共享锁)
select for update(排他锁)
update(排他锁)
insert(排他锁)
delete(排他锁)
在读已提交和可重复读隔离级别下的快照读,都是基于MVCC实现的!
MySQL 可重复读隔离级别并没有彻底解决幻读,只是很大程度上避免了幻读现象的发生。
https://blog.csdn.net/h2517956473/article/details/118727878
https://blog.csdn.net/m0_71777195/article/details/126968432
https://blog.csdn.net/lans_g/article/details/124232192
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了