我们来学mysql -- ReadView工作原理

ReadView

题记

  • 在undo log中提到delete的版本链
  • 同时在delete删除数据中,对真实删除记录后,不会找不到版本链溯源起点,做了说明
  • 虽然不在计划内,但也可将readview请出面见大家了

何时创建

  • 在可重复读隔离级别中
  • 仅在事务中第一次 执行SELECT语句时生成一次ReadView
  • 在整个事务期间复用

结构

  • 是事务进行快照读时生成的一致性视图

如何使用

  • 关注活跃事务20,25,30
  • 抓住活跃事务更新 或删除 的记录是未提交
  • 那么使用条件再次读 时,读取到页面中的记录1
  • 检查到记录1 的trx_id 不等于当前事务的Id
  • 就开始基于版本链查找
  • 所以只要记录1 的undo log 中trx_id 的值在活跃事务集合中
  • 那么就不是要读取的快照
  • 那何时是个头
  • 只要找到undo log 的trx_id 小于当前事务id ,便是最终的记录1?
  • 当前不是,你得执行一种计算方式,就是undo log回滚那套规则
  • 从记录1 回滚到此处,得到那时 ,当然就是初次认识 的记录1
相关推荐
龙腾AI白云6 小时前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
一 乐6 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
zzj_2626106 小时前
MySQL常用操作
数据库·mysql
其实防守也摸鱼6 小时前
Fastjson 反序列化漏洞(JNDI注入)
android·数据库·安全·oracle·自动化·fastjson·反序列化
haerapi7 小时前
把 PostgreSQL 复制巡检做成可审计闭环:确定性采集、阈值判定与受控模型归纳
数据库·postgresql
yolo_guo7 小时前
调试mysql延迟与libevent回调实际发送回复时机问题
c++·mysql·libevent
旺仔学长 哈哈7 小时前
springboot钓鱼爱好者交流平台APP设计与实现
java·spring boot·mysql·充电桩管理系统
微学AI8 小时前
不让每一步都调用最贵模型:用蓝耘智能路由改造自主式研究 Agent
数据库·人工智能·蓝耘
yjb.gz8 小时前
Oracle19 RAC查看集群状态及磁盘空间情况(巡检)
数据库
钝挫力PROGRAMER8 小时前
开发踩坑记:MyBatis selectKey、空 SQL
数据库·sql·mybatis