MySql45讲-08.事务到底是隔离的还是不隔离的?(结合MVCC视频)

命令的启动时机

begin/start transaction 命令并不是一个事务的起点,在执行到它们之后的第一个操作InnoDB表的语句,事务才真正启动。如果你想要马上启动一个事务,可以使用start transaction with consistent snapshot 这个命令。

事务的版本



对于一个事务视图来说,除了自己的更新总是可见以外,有三种情况:

  1. 版本未提交,不可见;
  2. 版本已提交,但是是在视图创建后提交的,不可见;
  3. 版本已提交,而且是在视图创建前提交的,可见。
    读提交的逻辑和可重复读的逻辑类似,它们最主要的区别是:
    在可重复读隔离级别下,只需要在事务开始的时候创建一致性视图,之后事务里的其他查询
    都共用这个一致性视图;
    在读提交隔离级别下,每一个语句执行前都会重新算出一个新的视图。
相关推荐
数据要素X几秒前
【数据架构10】数字政府架构篇
大数据·运维·数据库·人工智能·架构
lixzest32 分钟前
Redis实现数据传输简介
数据库·redis·缓存
搬砖的小熊猫33 分钟前
MySQL常见面试题
数据库·mysql
weixin_419658311 小时前
MySQL的JDBC编程
数据库·mysql
JavaLearnerZGQ1 小时前
Docker部署Nacos
数据库·docker·容器
何传令2 小时前
SQL排查、分析海量数据以及锁机制
数据库·sql·mysql
msg_data2 小时前
windows环境下MySQL 8.0 修改或重置密码
数据库·mysql
踏过山河,踏过海4 小时前
Django自带的加密算法
数据库·django·sqlite
黑白极客4 小时前
如何判断一个数据库是不是出问题了?
数据库·mysql