网站首页 > java教程 正文
理解这三种由于并发访问导致的数据读取问题,再理解事务隔离级别就简单多了。
【1】脏读(读取未提交数据)
A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。就好像原本的数据比较干净、纯粹,此时由于B事务更改了它,这个数据变得不再纯粹。这个时候A事务立即读取了这个脏数据,但事务B良心发现,又用回滚把数据恢复成原来干净、纯粹的样子,而事务A却什么都不知道,最终结果就是事务A读取了此次的脏数据,称为脏读。
这种情况常发生于转账与取款操作中
【2】不可重复读(前后多次读取,数据内容不一致)
事务A在执行读取操作,由整个事务A比较大,前后读取同一条数据需要经历很长的时间 。而在事务A第一次读取数据,比如此时读取了小明的年龄为20岁,事务B执行更改操作,将小明的年龄更改为30岁,此时事务A第二次读取到小明的年龄时,发现其年龄是30岁,和之前的数据不一样了,也就是数据不重复了,系统不可以读取到重复的数据,成为不可重复读。
【3】幻读(前后多次读取,数据总量不一致)
事务A在执行读取操作,需要两次统计数据的总量,前一次查询数据总量后,此时事务B执行了新增数据的操作并提交后,这个时候事务A读取的数据总量和之前统计的不一样,就像产生了幻觉一样,平白无故的多了几条数据,成为幻读。
趁热打铁,既然理解了脏读、不可重复读、幻读,那么接下来看看事务隔离级别是怎么个回事吧(明天更新)
猜你喜欢
- 2024-09-16 拼多多技术3面(Java研发):幻影读+Redis+分布式缓存+锁机制
- 2024-09-16 用java帮助你判断一个数是不是回文数
- 2024-09-16 java之解析复杂json(含源码)(java解析复杂json格式数据)
- 2024-09-16 “全栈2019”Java多线程第四十一章:读锁与写锁之间相互嵌套例子
- 2024-09-16 java开发神器IntelliJ IDEA CE 2019.2汉化版
- 2024-09-16 史上最强Java NIO入门:担心从入门到放弃的,请读这篇
- 2024-09-16 读Java实战(第二版)笔记01_Java的变化
- 2024-09-16 语言拟人向:来自Python、JAVA、C语言的“傲娇”自我介绍
- 2024-09-16 Java编程入门100例之四十五(读文件)
- 2024-09-16 读Java性能权威指南(第2版)笔记24_ Java飞行记录器JFR
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)