mysql 可重复读与串行化说明

本文详细解释了可重复读和串行化隔离级别的区别,通过实例演示了如何在数据库事务中实现可重复读效果,并介绍了串行化带来的极致隔离但性能下降的特点。通过设置隔离级别,展示了如何避免幻读并理解事务间的相互影响。
摘要由CSDN通过智能技术生成

可重复读取

可重复是对比不可重复而言的,不可重复读是指同一事务不同时刻读到的数据值可能不一致。而可重复读是指事务不会读到其他事务对已有数据的修改,即使其他事务已提交;也就是说,事务开始时读到的已有数据是什么,在事务提交前的任意时刻,这些数据的值都是一样的。

但是对于其他事务新插入的数据是可以读到的,这会引发了幻读的问题。

设置隔离级别的操作https://blog.csdn.net/qq_39408664/article/details/119004699
事务隔离级别基本操作 的标题下。

我们来测试一下,先更改全局隔离级别为可重复读级别:
在这里插入图片描述
设置完成之后,我们需要重新打开窗口,xshell 端口需要新开窗口链接,而 Nvaicat 需要重新打开查询窗口。

在这个隔离级别下,启动两个事务,分别是事务A和事务B,两个事务同时开启。

首先看一下可重复读的效果,事务A启动后修改了数据,并且在事务B之前提交,事务B在事务开始和事务A提交之后两个时间节点都读取的数据相同,已经可以看出可重复读的效果。

事务A事务B
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述


串行化

串行化是 4 种事务隔离级别中隔离效果最好的,解决了脏读、可重复读、幻读的问题,但是效果最差,它将事务的执行变为顺序执行,与其他三个隔离级别相比,它就是相当于单线程,后一个事务的执行必须等待前一个事务结束才能执行。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值