脏读、不可重复读、幻读的区别
来源:互联网 发布:java 监听模式原理 编辑:程序博客网 时间:2024/04/30 02:47
脏读(Dirty Read)
脏读意味着一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚 。
不可重复读(Unrepeatable Read)
不可重复读意味着,在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交而引起的。
例如:事务B中对某个查询执行两次,当第一次执行完时,事务A对其数据进行了修改。事务B中再次查询时,数据发生了改变。
幻读(Phantom Read)
幻读,是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
总的来说,都是两次读出的数据不一致。
具体来讲(主要区分不可重复读和幻读):
不可重复读的重点是修改和删除:同样的条件, 你读取过的数据, 再次读取出来发现值不一样了;
幻读的重点在于新增:同样的条件, 第1次和第2次读出来的记录数不一样。
所以说不可重复读和幻读最大的区别,就在于如何通过锁机制来解决他们产生的问题:
对于前者, 只需要锁住满足条件的记录;
对于后者, 要锁住满足条件及其相近的记录。
0 0
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读区别
- 脏读、不可重复读、幻读的区别
- 脏读,不可重复读和幻读的区别
- 脏读、不可重复读、幻读的区别
- 脏读,不可重复读,幻读的区别
- 数据库 脏读、不可重复读和幻读的区别
- 脏读 幻读 不可重复读的区别
- 幻读与不可重复读区别
- 幻读和不可重复读的区别
- 数据库 不可重复读与幻读的区别
- 幻读和不可重复读的区别
- 不可重复读和幻读的区别
- 幻读和不可重复读的区别
- LeetCode二叉树遍历的问题
- Neo4j介绍与使用
- 对于气缸型号表示的内容与与含义说明
- IOS10.3 URL Scheme 命名的调整
- 转成有序数组的最少交换次数
- 脏读、不可重复读、幻读的区别
- CSS+DIV布局中absolute和relative区别
- webdriver 执行完毕关闭chromedriver进程
- xpath解析
- 《JavaScript高级程序设计 第三版》学习笔记 (四) 对象创建详解
- CSS来实现用图片替换文字
- Microsoft界面定义语言
- 不正经运维狗的文档7
- Android四大组件——Service入门