事务隔离级别这词想必大家都听过,但要说个明明白白,可能不是每个人都能做到的,那就重温一下。
隔离级别的提出主要是为了有效保证并发读取数据的正确性,隔离级别主要有以下几种:
假设有一条数据A
一、读未提交(Read Uncommitted)也叫做未授权读取:
如果一个事务已经开始写数据A,则另外一个事务不允许同时对A进行写操作,但允许其他事务读A这条数据。通俗的说就是这条数据在任何时候都可以被读取到。
该种隔离级别会出现脏读取,但能保证更新不丢失。
二、读提交(Read Committed)也称为授权读取:
可以有多个读取事同时访问数据A,但若有一个写的事务正在操作数据A,则将会禁止其他任务事务访问A这条数据。
此种隔离级别不会出现脏读取,但会出现不可重复读取。
三、可重复读取(Repeatable Read):
可以有多个读取事同时访问数据A,但若有一读的事务正在访问A,则禁止其它写事务操作A 这条数据。若有写事务正在操作数据A则禁止任务事务访问A。
此种隔离级别可以防止不可重复读取和脏读取,但有可能出现幻读。
四、序列化(Serializable):
提供严格的事务隔离。它要求事务序列化执行,事务只能一个接着一个地去访问A,不能并发执行。此种隔离级别能防止不可重复读取、脏读取和幻读
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed。它能够避免脏读取,而且具有较好的并发性能。尽管它会导致不可重复读、虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。
什么是脏读、不可重复读、幻读?
脏读:
例如一个写的事务T1在操作数据A,尚未提交,另一个读的事务T2又来读取A,此时事务T2读到的是未提交前的数据,待T1事务提交后,T2拿到的数据显然不是最新的数据,这时就造成脏读取的发生。
不可重复读:
例如事务T1第一次读到A的值为1后,另一个事务修改A的值为2,T1事务又重新读取A这条数据时得到的值为2,两次读取的值不一致,因此导致不可重复读的发生。
幻读:
例如事务T1按一定的条件查到A这条数据后,另一个事务又插入了一条符合该条件的数据B,当T1事务再次根据同样的条件查询时就会取得两条数据A和B,造成两次读取的结果不一致,出现幻读,也可称作不可重复读。
Oracle、DB2、MySql、SqlServer主流数据库的事务隔离级别
分享到:
相关推荐
本篇文章将深入探讨主流的数据库分类及其工作原理,特别关注那些被广泛使用的数据库和缓存组件。 首先,我们需要了解数据库的基本类型。根据数据的组织方式,数据库主要分为两大类:关系型数据库(Relational ...
7、分布式事务隔离级别的功能效果及测试验证方法 8、分布式事务原子性的功能效果及测试验证方法 9、分布式事务读一致性的功能效果及测试验证方法 10、分布式事务写一致性的功能效果及测试验证方法 11、分布式锁...
主流数据库中临时表的使用 在主流数据库中,临时表是一种特殊类型的表,它们是临时存储数据的容器。临时表可以在不同的数据库管理系统中使用,本文将对 MS SQLSERVER、Oracle 和 DB2 中的临时表进行介绍。 MS SQL ...
本篇文章将深入探讨这些主流数据库的技术指标对比,帮助你更好地理解它们的特性和适用场景。 首先,我们来看关系数据库的代表——MySQL。MySQL是一种开源、免费的SQL数据库,以其高效、稳定和易用性著称。其主要...
本文将从事务的基本概念、隔离级别、锁机制以及事务控制语句等方面,详细探讨Oracle与MySQL在事务处理上的差异,并提供代码示例。 Oracle和MySQL在事务处理上有着各自的特点。Oracle提供了强大的并发控制和隔离级别...
本文将深入探讨内存数据库的概念、优势、应用场景,以及市场上几款主流的内存数据库产品,包括Oracle TimesTen、Sybase ASE、SQLite和VoltDB。 ### 内存数据库概述 内存数据库(In-Memory Database,简称IMDB)的...
数据库事务是确保数据库操作一致性、可靠性和完整性的关键机制。SQL和Oracle,作为两种主流的数据库管理系统,它们在处理事务时有一些重要的差异。本文将详细探讨这些差异,并着重讲解SQL Server 2008和Oracle数据库...
压缩包中的PPT资料很可能是关于JDBC事务控制的深入讲解,涵盖了事务的基本概念、事务控制API的使用、事务隔离级别的选择以及在实际开发中如何处理事务等问题。通过学习这部分内容,开发者可以更好地理解和运用JDBC...
考生需理解事务的概念,以及不同隔离级别的特点。 5. 数据库安全与备份恢复:这部分考察如何设置用户权限,保护数据库免受恶意攻击,以及在数据丢失或损坏时进行有效的备份和恢复策略。 6. 数据库性能调优:包括...
ACID(原子性、一致性、隔离性、持久性)是事务的基本属性,保证了数据库操作的正确性。事务管理包括事务的开始、提交、回滚和并发控制,后者涉及到死锁检测和预防。 最后,数据库备份与恢复策略对于业务连续性和...
MySQL 数据库笔记 MySQL 数据库是关系型数据库管理系统,用于存储和管理大量数据。下面是 MySQL 数据库笔记的知识点总结: 数据库概念 * 数据库是长期存储在计算机内部有结构的、...* 事务隔离级别。 * 事务管理。
- **并发性和吞吐率**:这主要涉及到事务隔离级别和存储管理,实际性能表现受硬件、操作系统和DBA的配置影响。两者的差异在实际应用中可能并不明显。 - **易用性**:Oracle提供了Java工具,使得管理更为便捷,而SQL ...
5. **事务与并发控制**:Notes06可能讲解了事务的ACID属性(原子性、一致性、隔离性和持久性),以及并发控制机制,如锁定、多版本并发控制(MVCC)和两阶段锁等。 6. **恢复与备份**:Notes07可能涵盖了数据库系统...
7. **数据库并发控制**:例如多用户环境下如何避免脏读、不可重复读和幻读等问题,理解并掌握各种锁定机制和事务隔离级别。 8. **数据库复制与集群**:主从复制、分布式数据库和数据库集群的原理和应用,如何提高...
5. 并发控制与事务处理:并发问题、死锁,事务的ACID属性,以及隔离级别设置。 6. 分布式数据库与数据仓库:分布式数据库的架构、复制技术,以及数据仓库的基本概念、OLAP操作和星型模型。 这些知识点不仅适用于...
5. **并发控制与事务处理**:学习如何处理多用户同时访问数据库时可能出现的问题,如死锁、事务隔离级别等。 6. **数据库设计与优化**:包括物理设计、索引设计、查询优化、性能监控等方面,理解如何通过合理设计...
本文将详细介绍针对SQL Server和Oracle两大主流数据库的阻塞监控工具及其相关知识。 首先,我们要理解什么是数据库阻塞。当一个事务正在执行时,另一个试图访问相同资源的事务被暂时阻止,这种现象就被称为阻塞。...
例如,MySQL、PostgreSQL和Oracle等主流数据库都支持保存点。 在进行JDBC编程时,良好的异常处理和事务管理是提高程序稳定性和数据完整性的关键。保存点是工具箱中的一个重要工具,它可以增加代码的灵活性,使我们...
性,它保证同一事务内的可重复读,为此提供用户多种手动上锁语句,和设置事务隔离级别 第1章结构化查询语言简介 语句 所支持的数据类型 数据类型是可表示值的集。值的逻辑表示是字值。值的物理表示依赖于实现。...