脏读dirty   reads:当事务读取还未被提交的数据时,就会发生这种事件。举例来说:Transaction   1   修改了一行数据,然后   Transaction   2   在   Transaction   1   还未提交修改操作之前读取了被修改的行。如果   Transaction   1   回滚了修改操作,那么   Transaction   2   读取的数据就可以看作是从未存在过的。

不可重复的读non-repeatable   reads:当事务两次读取同一行数据,但每次得到的数据都不一样时,就会发生这种事件。举例来说:Transaction   1   读取一行数据,然后   Transaction   2   修改或删除该行并提交修改操作。当   Transaction   1   试图重新读取该行时,它就会得到不同的数据值(如果该行被更新)或发现该行不再存在(如果该行被删除)。

虚读phantom   read:如果符合搜索条件的一行数据在后面的读取操作中出现,但该行数据却不属于最初的数据,就会发生这种事件。举例来说:Transaction   1   读取满足某种搜索条件的一些行,然后   Transaction   2   插入了符合   Transaction   1   的搜索条件的一个新行。如果   Transaction   1   重新执行产生原来那些行的查询,就会得到不同的行。

MYSQL事务隔离级别的认识

2010-08-06 10:27

在hibernate中如果要连续不间断的保存多个实体的实例,那么在我们保存第一个的时候,其实在数据库里是不存在数据的,即使用Session.flush()也无济于事,这到底是怎么回事呢?让我很是疑惑.......

在查阅了相关的资料后,原来是数据库对于事务的隔离级别的限制问题,而我原来的MYSQL数据库正好是不支持我上述操作的隔离级别。

1、在MYSQL中查询事务隔离级别:select @@tx_isolation;(tx其实就是transaction的缩写或者习惯缩写法)

我的结果是REPEATABLE-READ(即可重复读,稍后会引用专业结束文档)

2、修改MYSQL事务隔离界别:set transaction isolation level 目标隔离级别;

3、再次查询隔离级别进行检验是否已经成功修改。

这样在修改了隔离级别之后,在进行save()的时候,数据库中就会存在一些数据了,问题解决了。关于其他的数据库产品,思想都是一样的。

附加、官方的SQL事务隔离级别文档:

SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。

Read Uncommitted(读取未提交内容)

在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。

Read Committed(读取提交内容)

这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。

Repeatable Read(可重读)

这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。

Serializable(可串行化)

这是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。

MySQL事务隔离级别详解

mysql的脏数据_数据库的脏数据问题相关推荐

  1. mysql表的组成_数据库中的数据表由什么组成?

    在数据库中,数据表是由表名.表中的字段和表的记录三个部分组成的.在建立表之前都必须先设计它的结构,表结构描述了一个表的框架.设计表结构实际上就是定义组成一个表的字段个数,每个字段的名称.数据类型和长度 ...

  2. java查询数据库大批量数据_数据库有百万数据量的情况下,分页查询的方法及其优化方式...

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点. 下面简单说一下我知道的一些 ...

  3. mysql数据库每秒能写入多少条数据_数据库插入速度能有50W每秒吗

    写入速度 MySQL每秒可以插入50w条记录吗? 带着疑问,我们一起看看mysql每秒可以插入多少条记录? 要回答这个问题,首先要考虑影响mysql插入速度的因素有哪些? 硬盘的速度,网卡的速度,写入 ...

  4. mysql 怎么同时删除两张表的数据库,mysql怎样删除多个表格数据库数据_数据库

    mysql删除多个表格数据库数据的要领:在两个表之间竖立级联删除关联,完成删除一个表的数据时,同时删除另一个表中相干的数据,语句为[delete t1,t2 from t1,t2 where 前提]. ...

  5. mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...

    吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...

  6. mysql表之间怎么联动_数据库之间的数据联动调整方法、装置及系统的制作方法...

    数据库之间的数据联动调整方法.装置及系统的制作方法 [技术领域] [0001]本发明涉及一种信息处理技术领域,特别是涉及一种数据库之间的数据联动调整方法.装置及系统. [背景技术] [0002]随着信 ...

  7. mysql一个表中可以有几个主键_数据库的单个数据表中有几个主键?

    数据库的单个数据表中只能有一个主键.数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性:主键主要是用与其他表的外键关联,以及本记录的修改与删除. 数据库的单 ...

  8. 以下 D 不是MYSQL的对象权限_数据库课后习题及答案

    一.选择题[数据库系统的概述] 1. 数据库(DB).数据系统(DBS).数据管理系统(DBMS)之间关系是(C) A.DB包含DBS和DBMS B.DBMS包含DB和DBS C.DBS包含DB和DB ...

  9. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  10. 大数据_数据库(DBMS、DB、SQL )

    目录 开篇 一.数据库 1.数据库(通常概念) 1.1 数据库简介 1.2 数据库的好处 1.3 数据库相关概念 2.DBMS数据库管理系统概述 2.1 具体概念 2.2 DBMS根据数据的保存格式( ...

最新文章

  1. 使用 WordPress 插件模板开发高质量插件
  2. Servlet体系结构
  3. 得推分类信息 v4.0 强大且好用的网站信息编辑管理工具
  4. 使用工具包自动生成向EBS系统注册表和字段的代码
  5. 使用fastJson把对象转字符串首字母大小写问题的解决
  6. 1031 质量环(深层搜索演习)
  7. 开机进入boot menu和application menu,无法开机
  8. mysql的随机查询
  9. Stellarium(虚拟天文馆)
  10. 第一单元:函数预备知识——邻域——01
  11. 从排序数组中删除重复项-Python-LeetCode
  12. linux版本的xmind怎么安装教程,linux安装xmind
  13. WriteError Resulting document after update is larger than 16777216
  14. QLineEdit setFocus失效问题
  15. 区块链:Neutral Dollar(NUSD)亚稳态的可视化
  16. 使用buildroot构建根文件系统遇到问题【已解决】
  17. 啊哈c语言 潦草的初步笔记(1)
  18. 如何用示波器测量串口
  19. 数字家庭五大网络应用方案全解析
  20. 申请域名绑定IP开通80端口记录

热门文章

  1. Linux系统下安装ssh服务
  2. win7 修复计算机 黑屏,Win7系统崩溃不用重做!Win7无法进入桌面黑屏
  3. Android的六大布局详解
  4. proteus 直流可调稳压电源
  5. 【本站公告】近期Picasa图片没法查看的解决方案
  6. 边缘计算参考架构3.0
  7. 下行文格式图片_正确的公文格式图片.doc
  8. 【Java工具类】非对称加密之RSA算法工具类(分段处理)
  9. SAP接口编程 之 JCo3.0系列:JCoDestination
  10. 开4核后用哪个软件测试稳定性,测试CPU的稳定性的方法