千家信息网

什么是mysql的可重复读

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,今天就跟大家聊聊有关什么是mysql的可重复读,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。引入问题这个问题来源于一个网络课程的课后思考题,题
千家信息网最后更新 2026年11月04日什么是mysql的可重复读

今天就跟大家聊聊有关什么是mysql的可重复读,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

引入问题

这个问题来源于一个网络课程的课后思考题,题目是这样的:

我用下面的表结构和初始化语句作为试验环境,事务隔离级别是可重复读。现在,我要把所有"字段 c 和 id 值相等的行"的 c 值清零,但是却发现了一
个"诡异"的、改不掉的情况。请你构造出这种情况,并说明其原理。

mysql> CREATE TABLE `test2` (
`id` int(11) NOT NULL,
`c` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
insert into test2(id, c) values(1,1),(2,2),(3,3),(4,4);

补充解释下这个问题,mysql环境,innodb引擎,事务的隔离级别是可重复读,一个表只有两个字段,然后插入4条数据,希望你构造上图中的一种情况,就是明明update了,但是结果没有更新,select也好像没有生效。

给出问题的答案

先直接给出答案吧,

开启两个mysql的交互窗口,模拟两个事物的操作,比如一个事物叫A,一个事物叫B。

流程是这样的,

//事物A
start transaction with consistent snapshot;
//事物B
update test2 set c = c + 4;
//事物A 
update test2 set c = 0 where id = c;
//事物A
select * from test2;

具体操作的截图如下,

A事物 commit 后(事物结束),才可以通过select看到真实数据。

解释说明

要理解这个问题的答案,首先需要搞懂什么是可重复读的隔离级别。

可重复读隔离级别,事务 A 启动的时候会创建一个视图 read-view,之后事务 A 执行期间,即使有其他事务修改了数据,事务 A 看到的仍然跟在启动时看到的一样。

我们首先在事物 A 执行 start transaction with consistent snapshot,这个就开始了事物A的生命周期,并且是手动事物。因为 start transaction 默认就禁用了autocommit。

然后事物 B 开始直接执行了update。为了操作简单这里用了自动事物。也就是事物 B 在update后事物就提交了。

这个时候数据变成了下面这个样子:

idc
15
26
37
48

然后事物A继续执行 update test2 set c = 0 where id = c;,很明显由于事物B已经提交了,事物A的update的使用的是当前读,判断条件不满足,所以事物 A 不会更新任何数据。

接着,事物 A 执行select语句,为什么结果还是以前的数据呢?是因为事物 A 的select使用的一致读,也叫快照读,读取的还是以前的快照数据。

一致性读是读取在某个时间点已经提交了的数据, 在本示例中,这个时间点就是 start transaction with consistent snapshot执行的时间点。

索引,现在互联网公司大部分会把隔离级别设置成RC(Read Commited),也就是读已提交模式。当然除了上面那个问题,还有其它原因,这个不是本文的重点就不展开来讲了。

看完上述内容,你们对什么是mysql的可重复读有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

事物 数据 事务 问题 级别 隔离 两个 内容 情况 时间 答案 一致 也就是 字段 就是 快照 时候 环境 结果 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 美国互联网科技巨头监管 互联网科技与金融科技 互联网金融 科技 互联网络科技有限公司 互联网金融科技创新 未来的互联网科技 上海万想互联网科技 科技伦理 互联网公司 互联网科技公司需要的职位 现代科技和互联网有关系吗 创业天下互联网科技有限公司 汽车互联网创新科技园 晓花互联网科技有限公司网址 互联网金融科技公司的优势 万物互联网智能科技 陕西九四连强互联网科技有限公司 第三届互联网大会安防黑科技 互联网科技大会大佬 优雇互联网科技有限公司 智能科技公司是互联网公司吗 互联网科技社 上海互联网科技有限公司 广州互联网络科技有限公司 北京禾田雨橡互联网科技 西藏七维空间互联网科技有限公司 来此购互联网科技有限公司 辽宁互联网新科技 卓翼科技产业互联网合作 互联网公司高科技产品
0