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

 

posted @   大枇杷  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示