mysql set 隔离级别_MySQL 事务的隔离级别初窥

简介

MySQL的事务隔离级别一共有四个,分别是读未提交、读已提交、可重复读以及可串行化。

事前准备数据mysql> create table city(

-> id int(10) auto_increment,

-> name varchar(30),

-> primary key (id)

-> )engine=innodb charset=utf8mb4;insert into city(name) values('武汉市');

mysql> select * from city;

+----+-----------+| id | name |

+----+-----------+| 1 | 武汉市 |

+----+-----------+复制代码

事务并发可能出现的情况

脏读(Dirty Read)一个事务读到了另一个未提交事务修改过的数据

80bf43419d2788bc6726fe250e649b6e.png

会话B开启一个事务,把id=1的name为武汉市修改成温州市,此时另外一个会话A也开启一个事务,读取id=1的name,此时的查询结果为温州市,会话B的事务最后回滚了刚才修改的记录,这样会话A读到的数据是不存在的,这个现象就是脏读。(脏读只在读未提交隔离级别才会出现)

不可重复读(Non-Repeatable Read)一个事务只能读到另一个已经提交的事务修改过的数据,并且其他事务每对该数据进行一次修改并提交后,该事务都能查询得到最新值。(不可重复读在读未提交和读已提交隔离级别都可能会出现)

2f38c7a7b1632cb5ced81c34ea539515.png

会话A开启一个事务,查询id=1的结果,此时查询的结果name为武汉市。接着会话B把i

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值