MySQL的MVCC底层原理二(上)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL的MVCC底层原理二(上)

承接上文MySQL的MVCC底层原理

上文说到时序图中的第12步
这篇文章咱接着聊完

时序图

image.png

image.png

read-view为[100,200],300
即未提交数组事务id为100和200
最大的事务id为300

image.png

去id为1的数据的版本链中根据比对规则去查找数据

最新的一条数据

image.png

事务id为100
100在这个查询的未提交的事务数组中
所以这条数据对于当前查询事务是不可见的
那么继续在版本链上找

根据回滚指针找到第二条数据

image.png

image.png

事务id为300也是落到黄色部分的区间
根据版本链的对比规则可知
这一行数据的事务id300不在未提交事务的数组中
说明这个版本的数据是已经提交的事务产生的
这是可见的
截止目前找到了这条数据 
就会把这条数据返回

继续看下时序图第14和15步骤

又更新了2个SQL语句
第14步:
update account set name='人' where id =1;
第15步:
update account set name='笔' where id =1;

那么此时id=1的数据版本链是


image.png

时序图第16步

select name from account where id =1

image.png

可重复读的readview会沿用第一次查询时候的readview[100,200],300
如果已提交读的话每次select都会生成一次最新的readview 未提交事务数组为[200]

可重复读readview去最新版本链中找image.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL
|
2月前
|
存储 关系型数据库 MySQL
深入理解MySQL索引:从原理到最佳实践
深入理解MySQL索引:从原理到最佳实践
170 0
|
3月前
|
Oracle 关系型数据库 MySQL
MySQL相关(六)- 事务隔离级别的实现方案(MVCC)
MySQL相关(六)- 事务隔离级别的实现方案(MVCC)
38 0
|
1月前
|
存储 SQL 关系型数据库
[MySQL]事务原理之redo log,undo log
[MySQL]事务原理之redo log,undo log
|
2月前
|
存储 SQL 关系型数据库
MySQL事务底层原理和MVCC机制
MySQL事务底层原理和MVCC机制
35 1
|
2月前
|
存储 关系型数据库 MySQL
mysql数据库 mvcc
mysql数据库 mvcc
|
2月前
|
SQL 存储 关系型数据库
MySQL索引原理以及SQL优化
MySQL索引原理以及SQL优化
66 0
|
2月前
|
存储 SQL 关系型数据库
MySQL - 深入理解 MySQL 的 MVCC 及实现原理
MySQL - 深入理解 MySQL 的 MVCC 及实现原理
184 0
|
2月前
|
存储 缓存 关系型数据库
Mysql 专栏 - MVCC机制
Mysql 专栏 - MVCC机制
64 0
|
2月前
|
存储 关系型数据库 MySQL
面试题15: Mysql 数据存储原理
面试题15: Mysql 数据存储原理