mysql事务隔离级别解读

 

一、mysql事务隔离级别,有几种?

1.读未提交(read uncommitted),存在脏读、幻读可能

2.读提交(read committed),不会脏读,存在幻读可能

3.可重复读(repeatable read) - default,不会脏读,存在幻读可能

4.串行化(serializable ),不会脏读、幻读

 

二、场景分析:

1.假设数据表 T 中只有1列,存在1行记录

2.进行事务并发

结果分别是

读未提交:v1=2,v2=2,v3=2(B修改后,不需要提交事务,A就可以查到最新值)
读提交:v1=1,v2=2,v3=2(B修改后,需要提交事务,A才可以查到最新值)
可重复读:v1=1,v2=1,v3=2(可重复读的意思是,事务A在开始时,复制了一份V1的镜像值,后续都是读镜像值)
串行化:v1=1,v2=1,v3=不确定 (事务B必须在事务A执行完才可以执行)

三、基于可重复读的默认事务隔离级别,如何解决秒杀商品的超卖问题。

mysql有个概念称为"当前读",current read,也就是说更新数据的语句中的读,都是读最新值。假设v是库存,语句如下

update v=v-100 where v>=100;

 

原文出自:https://blog.csdn.net/daiyudong2020/article/details/90552734

 

End

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值