带你搞懂MySQL隔离级别,两个事务同时操作同一行数据会怎样?

本文通过一个面试题目引入,探讨MySQL的默认隔离级别——可重复读,解释了在并发事务中可能导致的脏读、不可重复读和幻读问题,并介绍了四种数据库事务隔离级别,帮助理解为何在同一个事务内查询同一数据结果不变。
摘要由CSDN通过智能技术生成

一. 前言

最近有学生出去面试,被问到这样一个题目:【假设目前你们使用的数据库是MySQL,现在有一个事务A,在事务A开始时读取到的数据结果是1事务A中间有一段耗时操作,在事务A做耗时操作的同时,有另外一个事务B把数据值改成了2并提交了**。请问在事务A中,**再一次查询该数据的结果应该是1还是2,并且说明原因】如下图所示:

二. 执行结果

在讲清楚这个问题之前,壹哥要先和大家一起打开数据库,看看这个问题的执行结果。我们可以首先创建一张表,这个表的名字叫做【tb_test】,并且插入一条数据,如下图所示:

接下来壹哥再开启一个事务A,在事务A中,我们首先查询出id=1这一行中d列的结果。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值