`
f543711700
  • 浏览: 326330 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

事务的隔离级别研究

 
阅读更多
今天无聊研究了一下以前没仔细看过的事务隔离级别,目前通用的包括大概是下面的图片的样子:





其中,oralce和其他很多数据库默认第二种级别,mysql默认使用第三种级别。

     根据我的测试,select 语句在任何时候都不会阻塞,即一个事务不管进行何种的DML语句而不提交事务,另外一个事务都可以顺利执行select语句。
     这是因为select语句并不需要获得 操作对象的锁,在oralce中,因为默认隔离级别是“提交读”,所以此时的select语句只能读取到“已提交后的数据”,也正是因为只要数据提交,就能被读取到,所以oralce存在 “不可重复读”。但是mysql的默认隔离级别是第三种,所以这个时候mysql不存在“不可重复读”,因为mysql的处理策略是:必须select语句所在的事务被提交后,才能读取到被其他事务更新的数据。不过根据我的测试有个很奇怪的问题:资料上说mysql存在 幻读,不过我的测试中发现不存在。

     但是DML语句不同,如果一个事务进行了DML操作而不提交事务,那么其他事务的DML语句将不能得到执行(测试了oracle和 mysql5.x innodb引擎)。
     这是因为DML语句的执行需要获得 操作对象(表、视图、行)的锁。






  • 大小: 14.9 KB
分享到:
评论

相关推荐

    SQLSERVER事务隔离级别的实验研究.pdf

    本研究为中国工程物理研究院工学院的课题研究提供了参考和指导,通过对SQL Server事务隔离级别的实验研究,有助于理解和掌握多用户并发数据库系统中的事务隔离机制,为数据库设计和应用开发提供了科学依据。...

    A_Critique_of_ANSI_SQL_Isolation_Levels.pdf

    在介绍和分析数据库事务隔离级别的经典文献《A Critique of ANSI SQL Isolation Levels》中,作者Hal Berenson、Phil Bernstein、Jim Gray、Jim Melton、Elizabeth O’Neil和Patrick O'Neil深入探讨了ANSI SQL-92...

    hermitage:数据库中事务隔离级别之间的区别是什么? 这是一组测试案例,用于区分隔离级别

    冬宫:测试事务隔离级别 “亚里斯多德坚持认为,妇女的牙齿比男子的牙齿少; 尽管他已经结过两次婚,但他从来没有想过要检查妻子的嘴巴来证实这一说法。” ―贝特兰·罗素(Bertrand Russell),《科学对社会的影响...

    oracle事务控制机制研究.pdf

    Oracle提供不同级别的事务隔离级别,如读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。 4. **持久性 (Durability)**:一旦事务提交,对数据库...

    SQL SERVER中的事务处理教学研究.pdf

    SQL SERVER通过不同的事务隔离级别来控制事务间的干扰程度,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。 **持久性** 持久性保证一旦...

    论文研究-基于事务依赖的错误隔离及修复技术.pdf

    本研究论文专注于提高数据库在恢复过程中的服务有效性,通过建立一种基于数据项分类标记的错误隔离模型,并提出了基于事务依赖关系的数据修复算法。这些方法有助于缩短错误修复的时间,从而提高数据库系统的整体可用...

    Hibernate 事务和并发控制

    例如,对于读多写少的场景,乐观锁和较高的事务隔离级别(如Repeatable Read)可能是更好的选择。而对于写操作频繁的情况,悲观锁和更低的隔离级别可能更合适。 总的来说,理解并熟练掌握Hibernate的事务和并发控制...

    mysql中的事务、锁讲解和操作

    锁机制是实现事务隔离级别的基础。MySQL中的锁可以从多个角度进行分类: 1. 从数据操作的类型分类,分为锁定读(共享锁/读锁)和锁定写(排他锁/写锁)。共享锁允许多个事务同时读取同一数据,而排他锁则阻止其他...

    毕业论文:SQL Server2005事务处理机制之研究

    SQL Server 2005支持多种事务隔离级别,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。不同的隔离级别决定了事务执行期间对其他并发事务的...

    EF事务死锁测试.rar

    默认情况下,EF使用数据库提供的事务隔离级别,如读已提交(Read Committed)或可重复读(Repeatable Read),不同的隔离级别对死锁的影响不同。 2. **死锁的条件**:死锁通常需要满足四个条件:互斥、请求与保持、...

    MySQL 事务(五).pdf

    事务隔离级别用于控制事务之间如何隔离,不同的隔离级别有不同的性能和一致性表现。 ##### 1. **Read Uncommitted (读未提交)** - 允许事务读取未提交的数据。 - 容易出现脏读、不可重复读和幻读。 ##### 2. **...

    SQL事务处理代码共享

    除此之外,事务还涉及到隔离级别(Isolation Levels),包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)。不同的隔离级别会影响并发性能和...

    Spring 注解学习手札(五) 业务层事务处理

    Spring支持五种事务隔离级别,包括`DEFAULT`、`READ_UNCOMMITTED`、`READ_COMMITTED`、`REPEATABLE_READ`和`SERIALIZABLE`,它们决定了不同事务之间数据可见性的策略。 4. **事务的回滚规则** 默认情况下,运行时...

    事务机制及相关代码实现

    在实际工作中,还需要考虑事务隔离级别(如读未提交、读已提交、可重复读、串行化),以平衡性能和数据一致性。同时,随着分布式系统的普及,分布式事务如2PC(两阶段提交)、TCC(尝试、确认、补偿)等也成为研究...

    Spring整合JMS(四)——事务管理

    事务隔离级别决定了多个事务之间数据可见性的规则,而超时设置则定义了事务等待完成的最大时间。合理设置这些参数能保证系统的稳定性和性能。 在实际应用中,可能会遇到事务传播行为的问题。Spring提供了七种事务...

    Spring aop、jdbc和事务tx练习

    在IT领域,Spring框架是Java开发中的核心工具之一,它为构建高质量的、可维护的、松耦合的应用程序...在实践中,你可能会遇到的问题包括事务传播行为、异常回滚规则、事务隔离级别等,这些都是进一步学习和研究的方向。

    数据库与事务处理

    事务处理通常有四种隔离级别:读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。不同隔离级别提供了不同的并发控制策略,权衡了性能和数据一致性...

    Ibatis死锁

    1. **事务隔离级别**:不同的事务隔离级别对并发事务处理的方式不同,较低的隔离级别可能导致脏读、不可重复读或幻读,而较高的隔离级别可能导致更多的锁竞争,增加死锁风险。 2. **SQL语句的编写**:如果SQL语句...

Global site tag (gtag.js) - Google Analytics