mysql事务隔离级别详解_mysql事务隔离级别详解

当mysql同时执行多个事务时,就有可能出现脏读、幻读、不可重复读的现象,于是就有隔离级别的概念

一、隔离级别的分类

读未提交(RU):当一个事务还未提交时,他做的变更被其他事务看到(容易出现脏读)

读已提交(RC):一个事务已经提交,其他事务才能看到他的变更。(容易出现幻读)

可重复读(RR):一个事务在执行过程中看到的数据,总是跟执行前看到的数据是一致的,未提交时变更的内容其他事务也看不到(可防止幻读)

串行化(SR):对同一行记录,写会加写锁,读会加读锁,当发生锁冲突时,后执行的事务要等前面执行的事务执行完成后才能执行

举例说明:

6a740e2759594c55ae553eb79274b318.png

在实现上,数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准。在“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图。在“读提交”隔离级别下,这个视图是在每个SQL语句开始执行的时候创建的。这里需要注意的是,“读未提交”隔离界别下直接返回记录上的最新值,没有视图概念;而“串行化”隔离级别下直接用加锁的方式来避免并行访问。

脏读:一个事务读到了另一个事务未提交的数据

幻读:事务a按一定条件读取了该表的一些数据,然后事务b想该表插入了一些满足事务a查询条件的数据,当事务a再次以相同条件查询数据时,会发现多出来一些数据,就好像产生了幻觉一样,我们称为幻读

不可重复读:事务a读取了某条数据,事务a没有提交,然后事务b修改了该条数据,这时事务a再次读取该条数据,这样两次读取的数据不同,我们成为该条数据为不可重复读。概况一句话就是一个事务多次读取某条数据,发现读取的数据不完全相同。

参考文档:https://blog.csdn.net/xcy1193068639/article/details/85058641

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值