MySQL事物实战篇

本文详细探讨了MySQL事物中的可重复读隔离级别,通过案例分析了在不同启动方式下事物对数据的影响。重点解释了一致性视图的原理,包括事务ID、数据版本和回滚日志在确定数据可见性中的作用。最后总结了可重复读和读提交隔离级别下数据查询的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL事物实战篇

前面一篇博客已经了解了事物的一些特征,这里先来看如下的一个执行流程:

1. 案例一

先创建表:

mysql> create table k (
    -> id int primary key,
    -> k int(11) not null)
    -> engine = innodb;
Query OK, 0 rows affected (0.36 sec)

mysql> insert into k values((1,1),(2,2));![1569206186765](C:\Users\Laptop\AppData\Local\Temp\1569206186765.png)

在这里插入图片描述

执行上表的操作,这里先注意一下:

  • start transaction with consistent snapshot代表马上启动一个事物,begin/start transaction 命令并不是一个事物的起点,在执行到他们之后的第一个操作InnoDB表的语句,事物才真正启动;
    两者的区别:

    • 第一种启动方式:一致性视图是在执行start transaction with consistent snapshot时创建的;
    • 第二种启动方式:一致性视图是在执行第一个快照读语句时创建的;
    • 即当事物一用第一种方式启动后,在事物二更新一行数据后,在事物一中查
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值