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

简识MySQL中ReadView、RC、RR的关系

一、背景

        在MySQL中,ReadView是事务进行快照读操作时生成的读视图,它用于确定哪些数据对当前事务是可见的。ReadView的生成和属性受MySQL事务隔离级别的影响,特别是RC(Read Committed,读已提交)和RR(Repeatable Read,可重复读)这两个级别。

二、详解

对于ReadView中哪个属性是由MySQL的事务隔离级别RC、RR设置来起作用的,可以明确的是:ReadView的生成时机和更新策略是由事务隔离级别RC和RR来决定的。具体来说:

  1. 在RC隔离级别下

    • 每个快照读操作都会生成并获取最新的ReadView。这意味着,在同一个事务中,如果执行了多次快照读操作,那么每次操作都会看到一个可能不同的数据快照,因为每次都会根据当前活跃的事务ID列表来生成新的ReadView。
  2. 在RR隔离级别下

    • 同一个事务中的第一个快照读会创建ReadView,之后的快照读获取的都是同一个ReadView。这意味着,在同一个事务中,无论执行多少次快照读操作,它们都会看到一个相同的数据快照,因为ReadView在事务开始后只生成一次,并且不会随着事务的进行而更新。

因此,虽然ReadView本身包含多个属性(如trx_list、up_limit_id、low_limit_id等),但这些属性的值是由事务的快照读操作在生成ReadView时根据当前系统状态确定的。而ReadView的生成时机和更新策略,则是由MySQL的事务隔离级别RC和RR来控制的。

总的来说,事务隔离级别RC和RR通过影响ReadView的生成时机和更新策略,从而决定了事务在执行快照读操作时能够看到的数据快照。

(望各位潘安、各位子健不吝赐教!多多指正!🙏)


http://www.kler.cn/a/505438.html

相关文章:

  • 我的年度总结
  • LabVIEW光流算法的应用
  • C#,图论与图算法,任意一对节点之间最短距离的弗洛伊德·沃肖尔(Floyd Warshall)算法与源程序
  • Flask表单处理与验证
  • 迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-配置创建私有配置文件
  • 极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案
  • 二级缓存(缓存到Redis)
  • Electron 开发者的 Tauri 2.0 实战指南:文件系统操作
  • LeetCode热题100(三十四) —— 23.合并K个升序链表
  • git报错处理
  • linux服务器 常用脚本(超全)
  • SpringBoot项目中解决CORS跨域资源共享问题
  • 比较分析:Windsurf、Cody、Cline、Roo Cline、Copilot 和 通义灵码
  • hadoop3.3和hive4.0安装——单节点
  • ubuntu如何搭建ftp
  • MAP评价指标在Faster R-CNN中的使用
  • macOS 如何终止端口占用的进程 ?
  • 【Linux网络编程】高效I/O--I/O的五种类型
  • 【机器人】复现SceneGrasp 同时支持多目标 3D物体重建、6DoF位姿估计、抓取预测
  • Blazor中Syncfusion图像编辑器组件使用方法
  • 汽车故障码U010087 EMS Communication time out 解析和处理方法
  • C 陷阱与缺陷 —— Chapter one 词法陷阱
  • docker 部署 Kafka 单机和集群
  • 七十五:握手的优化:Session缓存、Ticket票据及TLS 1.3的0-RTT
  • iOS - 关联对象的实现
  • Qt 5.14.2 学习记录 —— 십삼 QComboBox、QSpinBox、QDateTimeEdit、QDial、QSlider