innodb是如何巧妙实现事务隔离级别

 之前的文章

1, zhangsan 2, lisi 3, wangwu
复制代码

demo1:

  事务A,先执行,处于未提交的状态:

insert into t values(4, 'zhaoliu');

  事务B,后执行,也未提交:

select * from t;

  如果事务B能够读取到(4, zhaoliu)这条记录,说明事务A就对事务B产生了影响,这种影响叫做“读脏”,即读到了未提交事务操作的记录。

demo2:

  事务A,先执行:

复制代码
select * from t where id=1;

结果集为

1,zhangsan
复制代码

  事务B,后执行,并且提交:

复制代码
update t set name=xxx where id=1;
commit;
复制代码

  事务A,再次执行相同的查询:

复制代码
select * from t where id=1;  结果集为:  1, xxx
复制代码

  这次是已提交事务B对事务A产生的影响,这种影响叫做“不可重复读”,即一个事务内相同的查询,却得到了不同的结果。

demo3:

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信