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

命令的启动时机

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

事务的版本



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

  1. 版本未提交,不可见;
  2. 版本已提交,但是是在视图创建后提交的,不可见;
  3. 版本已提交,而且是在视图创建前提交的,可见。
    读提交的逻辑和可重复读的逻辑类似,它们最主要的区别是:
    在可重复读隔离级别下,只需要在事务开始的时候创建一致性视图,之后事务里的其他查询
    都共用这个一致性视图;
    在读提交隔离级别下,每一个语句执行前都会重新算出一个新的视图。
相关推荐
smilejingwei41 分钟前
数据分析编程第二步: 最简单的数据分析尝试
数据库·算法·数据分析·esprocspl
bing.shao1 小时前
gRPC 选型 etcd 的核心优势分析
数据库·微服务·云原生·golang·etcd
TDengine (老段)2 小时前
TDengine IDMP 应用场景:微电网监控
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
不叫猫先生3 小时前
Amazon Lambda:无服务器时代的计算革命,解锁多样化应用场景
服务器·数据库·人工智能·amazon lambda
秋天枫叶353 小时前
【AI应用】修改向量数据库Milvus默认密码
运维·服务器·数据库·ubuntu·milvus·milvus_cli
王伯爵4 小时前
go语言中的select的用法和使用场景
开发语言·数据库·golang
凯子坚持 c4 小时前
Redis 数据类型:List 列表的深度解析与应用
数据库·redis·list
DarkAthena4 小时前
【GaussDB】使用gdb定位GaussDB编译package报错
数据库·gaussdb
DONG9134 小时前
Redis内存架构解析与性能优化实战
数据库·redis·sql·database
励志五个月成为嵌入式糕手5 小时前
0821 sqlite3_get_table函数(数据库函数的补充)
数据库