MySQL事物隔离级别

事物基本要素

  • 原子性:事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态
  • 一致性:事务开始前和结束后,数据库的完整性约束没有被破坏
  • 隔离性:同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰
  • 持久性:事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚

概念说明

脏读
a读到了b更新的数据,然后b回滚,那么a读到的数据将是不存在的数据,即脏数据
不可重复读
a对一个数据进行多次读取,b在a进行多次读取过程中,对该数据进行了更新并且提交,使得a多次读取统一数据得到的结果不同
幻读
a按照一定条件对数据进行读取,在此期间b插入了一条相同条件的新数据。a再次按照相同条件进行数据读取,发现了新数据

事物隔离级别

在这里插入图片描述

在这里插入图片描述

读未提交

如果一个事务读到了另一个未提交事务修改过的数据,那么这种隔离级别就称之为未提交读

在这里插入图片描述

读提交

如果一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值,那么这种隔离级别就称之为已提交读
在这里插入图片描述

可重复读

在一些业务场景中,一个事务只能读到另一个已经提交的事务修改过的数据,但是第一次读过某条记录后,即使其他事务修改了该记录的值并且提交,该事务之后再读该条记录时,读到的仍是第一次读到的值,而不是每次都读到不同的数据。那么这种隔离级别就称之为可重复读
在这里插入图片描述

串行化

串行化就很容易理解了。
在这里插入图片描述

本文最后四张图片参考自wust_zwlMySQL事务隔离级别和MVCC (绝对看得懂),大家可以参考原文,原文内容更加深刻!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的大男子主义

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值