02.03 Day 15 - 重温 Day 6

大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 15 天,也是我第 65 次进行这种操作。

今天我重温了该专栏里一篇叫《事务到底是隔离的还是不隔离的?》的文章。

关键词总结:事务启动时机、MySQL 两个 “视图” 的概念、“快照” 在 MVCC 里是怎么工作的?(数据版本 row trx_id 的几种可能、对事务视图来说的数据版本)、更新逻辑(读提交和可重复读的区别)。

所学总结:

事务启动时机

  • 执行第一个快照读语句时创建一致性视图;
  • 执行 start transaction with consistent snapshot 时创建一致性视图。

MySQL 两个 “视图” 的概念

View 视图、Consistent Read 视图。

数据版本 row trx_id 的几种可能

已提交事务(低水位)、未开始事务(高水位)、未提交事务集合(当前事务)、row trx_id 在数组中、row trx_id 不在数组中。

对事务视图来说的数据版本

版本未提交、版本已提交(视图创建前后)

更新逻辑

读提交和可重复读区别

可重复读隔离级别、读提交隔离级别。
 

末了

重新总结了一下文中提到的内容:InnoDB 行数据有多个版本、数据版本有自己的 row trx_id、事务或语句有自己的一致性视图、普通查询语句是一致性读、一致性读会根据 row trx_id 和一致性视图确定数据版本可见性、可重复读查询认可在事务启动前就提交的数据、读提交查询认可在语句启动前就提交的数据。

扫描二维码关注公众号,回复: 9024559 查看本文章
发布了132 篇原创文章 · 获赞 6 · 访问量 7972

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104151890
今日推荐