当前位置: 首页 > news >正文

关于脏读,幻读,可重复读的学习

  1. mysql 可以查询当前事务隔离级别

默认是RR
repeatable-read

  1. 如果要测脏读 要配成未提交读 RU

读到了未提交的数据。

3.演示不可重复读
要改成提交读 RC

这个是指事务还未结束,其他事务修改了值。导致我两次读的不一样。

4.RR–可以解决不可重复读

小总结:
RU-》有脏读-》为了解决脏读来一个RC,读已提交-》有不可重复读的问题-》为了解决不可重复读的问题来一个RR。-》有幻读-》

5.在RR隔离级别下,快照读的数据范围是:
✅ ​事务首次SELECT时已提交的数据​ + ​当前事务自身的修改

6.当前读 vs 快照读​
​快照读​(普通SELECT)→ 依赖Read View,​不包含未提交数据​

​当前读​(SELECT FOR UPDATE)→ 读取最新数据(含未提交),通过锁机制实现

7.​事务开始 ≠ 快照生成​
RR下快照在第一个SELECT时生成,而非BEGIN执行时
。例如:
sql
复制
BEGIN; – 事务开始,但未生成Read View
SELECT …; – 生成Read View并记录快照

8.innodb 的MVCC+间隙锁,让RR级别就解决了幻读。

9.MVCC

mutiversion concurrency control
多版本并发控制器

事务隔离级别的无锁的实现方式,提高事务的并发性能。

是事务隔离级别的一种底层实现方式。

并不是所有的隔离级别都用到MVCC。

4级别

读未提交–>脏读
读已提交—>不可重复读
可重复读----》幻读
串行化 Serializable S SER 锁表。

然后幻读–》事务1对整个表进行汇总
如对某字段求和。 但是另外一个事务插入了一条数据。

幻读与不可重复读看起来像,但是幻读往往针对整张表,而不可重复读是针对某一条或者几条数据。

MVCC–3个隐藏列
1.事务ID
2.DB_ROLL_PTR
如果回滚可以链到之前的数据。
3.无主键时有一个row id。这个不重要

历史数据存储于 undo log。

若读已提交,从undo log中找历史数据。

若RC。每次查询,创建一个ReadView

定位到undolog。。。

当前事务 正在并发的事务 未开始的

进行中的事务—》还未提交的有个最小的
最大的 可能还未开始。

自己写的可以。
快照之前已提交的可以。

如果是快照瞬间,活跃事务做的。
读已提交是不行的。

最小最大中—只有它自己的OK。

小于最小的 一直OK

大于最大的 一直不OK.

徐庶讲的是读已提交下的MVCC。

另外的也讲了:
读未提交,不需加锁,也不需MVCC

串行化—表锁 无需MVCC

可重复读—》只有在第一次查询建快照。

所以RC RR MVCC机制大体相似,只是是否每次查询建快照的区别。

简单理解就是一次RC里面做了多次RR。没什么意义的评论。

10.关于徐庶说RR无法解决幻读的争议。
字节面试官说MVCC+间隙锁解决了幻读
刚刚看的视频,UP演示的也是RR能解决幻读。

相关文章:

  • SDC命令详解:使用set_port_fanout_number命令进行约束
  • Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(上)
  • pycharm 中文字体报错
  • PyCharm集成Conda环境
  • Doris 与 Elasticsearch:谁更适合你的数据分析需求?
  • 【Java学习笔记】String类(重点)
  • 从零开始搭建 Pytest 测试框架(Python 3.8 + PyCharm 版)
  • Android Studio 解决首次安装时下载 Gradle 慢问题
  • 【数据分析】探索婴儿年龄变化对微生物群落(呼吸道病毒和细菌病原体)结构的影响
  • 使用 C/C++ 和 OpenCV 提取图像的感兴趣区域 (ROI)
  • 游戏(game)
  • Mybatis-Plus的LambdaWrapper
  • Python_day47
  • 华为云Flexus+DeepSeek征文 | 从零到一:用Flexus云服务打造低延迟联网搜索Agent
  • Python入门手册:异常处理
  • 微前端 - Native Federation使用完整示例
  • JavaWeb的一些基础技术
  • Jenkins持续集成CI,持续部署CD,Allure报告集成以及发送电子 邮件
  • 前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)
  • EPPLUS——CAD c#读写EXCEL的第三方库
  • 用模块做网站/百度软件应用市场
  • 网站建设规划面试技巧/杭州网站优化搜索
  • 想找做拼接屏的公司去哪个网站/百度识图在线识别
  • 移动端原型/网络seo优化公司
  • 亦庄网站开发公司/东莞seo托管
  • 简述电子商务的含义/seo排名技术软件