`

正确理解脏读、不可重复读、幻读

阅读更多

1、脏读 (dirty read)

A事务读到B事务尚未提交的数据,就是脏读。

例如:

事务A更新某条数据

事务B读取该条数据

事务A commit

事务B commit

这种情况下事务B读的就是脏数据。

 

 

2、不可重复读 (unrepeatable read)

在同一个事务中,再次读取数据时(就是你的select操作),所读取的数据,和第1次读取的数据,不一样了。就是不可重复读。

例如:

事务A读取数据

事务B更新数据

事务B commit

事务A再次读取数据

这时A两次读取的数据就不一样了,也就是不可重复读。

 

3、幻读  (phantom read

事务A读取与搜索条件相匹配的若干行。事务B以插入或删除行等方式来修改事务A的结果集,然后再提交。

例如:

 事务A查询到了5条数据

事务B更新了相关联的表

事务B commit

事务A再次查询只得到了4条数据

这次事务A就是幻读了

 

 

分享到:
评论

相关推荐

    防止重复发送 Ajax 请求

    要考虑并理解 success, complete, error, timeout 这些事件的区别,并注册正确的事件,一旦失误,功能将不再可用; 不可避免地比普通流程要要多注册一个 complete 事件; 恢复状态的代码很容易和不相干的代码混合在...

    英语四六级:如何在短期内利用答题小技巧提分100+(2).docx

    翻译不可太拘泥,否则很容易因死守原文语言形式而损害了原文思想内容,好的译文应该是形式与内容的统一。能够直译尽量不意译。翻译的过程应该是先理解后表达。 【具体方法】首先,英文段落的首句一般为topicsentence...

    PERL语言编程

    如果你的老板不炒你,而且你的 Perl 脚本也能完成工作,那么它就是“正确”的。 <br/>尽管 Perl 很简单,但它仍然是一种特性很丰富的语言,如果你想用那些特性的话,那你就要学习一些东西。这也是把难题变简单...

    重新检查代码:一键查重,自动检查项目中的重复代码

    而在项目逐步稳定,功能需求逐步完善之后我们就需要考虑对代码库的优化与重构,正确编写清晰的可维护的代码。好的代码往往是在合理范围内进行地避免重复代码,并遵循单一职责与单一原则的真相。 当然,我们并不是...

    数据质量管理:6个维度,50个检查项.pdf

    1、准确性:数据不正确或描述对象过期 2、合规性:数据是否以非标准格式存储 3、完备性:数据不存在 4、及时性:关键数据是否能够及时传递到目标位置 5、一致性:数据冲突 6、重复性:记录了重复数据

    Chuck-Frontend-Nanodegree-Mobile-Portfolio:Chuck 前端纳米学位移动产品组合

    PageSpeed Insights 90 以上的分数并不难达到,但代码不是我认为可读的。 我能够理解发生了什么,因为我是进行修改的人。 它似乎也不符合在项目 1 中学到的内容,其中包括正确的格式和 html 和 css 的分离。 需要...

    Shellcoder’s Handbook: Discovering and exploiting Security Holes---中文CHM

    以前说书非借不能读,现在是文章留在硬盘上却不读。其实本版已经很多经典文章了,也推荐了不少经典书籍了,有几个好好看过呢。 W.Richard.Stevens的UNP我算是认真看过加了不少旁注,APUE就没有那么认真了,而卷II的...

    v4l2-framework.txt

    由于框架的缺失,有很多通用代码都不可重复利用。因此,这个框架构建所有驱动都需要的基本结构块,而统一的框架将使通用代码创建成实用函数并在所有驱动中共享变得更加容易, 有兴趣的可以下载看下

    大数据:数据清洗、数据分析、数据挖掘.doc

    这一类数据也要分类,对于类似于全角字符、数据前 后有不可见字符的问题,只能通过写SQL语句的方式找出来,然后要求客户在业务系统修 正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这...

    数据库设计的黄金经验.txt

    在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    asp.net面试题

    答:这个异同可多了,要说清楚还真不容易. 9.。net中读写数据库需要用到哪些类?他们的作用 答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到. 10.UDP连接和TCP连接的...

    你必须知道的495个C语言问题

    可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数...

    数据库设计技巧.doc

    在数据库设计中,为了更好地应 用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准 确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF...

    如何提高射频测试仪器的射频测量技术

    概览  现代射频仪器具有远远超过其前代产品的令人印象深刻的测量能力和精度。然而,如果不能提供高品质的信号,这些仪器就不能充分发挥其潜能... 例如精度、可重复性、分辨率和不确定性这些术语经常在各种各样的射频

    oracle数据库表设计.pptx

    基本表中的字段是不可再分解的。 (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。 (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 (4) 稳定性。基本表的结构是相对稳定的,表中的...

    正则表达式30分钟入门教程

    这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次,否则都不匹配。 因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也...

Global site tag (gtag.js) - Google Analytics