一句话讲解脏读、幻读、不可重复读

| 脏读

核心要领:A事物数据读取后,B事物回滚,导致A读取数据有误

时间顺序 转账事务(A) 取款事务(B)
1 开始事务
2 开始事务
3 查询账户余额为2000元
4 取款1000元,余额被更改为1000元
5 查询账户余额为1000元(产生脏读
6 取款操作发生未知错误,事务回滚,余额变更为2000元
7 转入2000元,余额被更改为3000元(脏读的1000+2000)
8 提交事务

说明 :按照正确逻辑,此时账户余额应该为4000元


| 幻读

核心要领:A事物第一次和第二次读取数据之间,B提交事物,导致A读取不同

时间顺序 事务A 事物B
1 开始事务
2 第一次查询,数据总量为100条
3 开始事务
4 新增100条数据
5 提交事务
6 第二次查询,数据总量为200条
7 提交事务

说明 :按照正确逻辑,事务A前后两次读取到的数据总量应该一致


| 不可重复读

核心要领:同幻读,区别在于幻读事物B是插入和删除数据,不可重复读是修改数据

时间顺序 事务A 事物B
1 开始事务
2 第一次查询,小明年龄20岁
3 开始事务
4 将小明年龄修改为30岁
5 提交事务
6 第二次查询,发现小明年龄为30岁
7 提交事务

说明 :按照正确逻辑,事务A前后两次读取到的数据应该一致

发布了39 篇原创文章 · 获赞 58 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43968234/article/details/103793353