1. 数据库操作 issue
1.1 更新丢失(lost update):当系统允许两个事务同时更新同一数据时,发生更新丢失
1.2 脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。
1.3 非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。(A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data. )
1.4 幻像(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。(A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition. )
2. ANSI/ISO SQL92标准定义的隔离级别:
2.1 未提交读(read uncommitted)
2.2 提交读(read committed)
这是大多是数据库的默认隔离级别并被大多vendors支持
2.3 重复读(repeatable read) --行级锁定,不能写该行
2.4 序列化(serializable) --表锁定,不能插入新的数据
参考: http://kakaluyi.iteye.com/blog/185473
分享到:
相关推荐
数据库隔离级别与脏读、幻读的深入解析
1. 读未提交(Read Uncommitted):允许读取未提交的数据,可能导致脏读、不可重复读、幻读。 2. 读提交(Read Committed):仅能读取已提交的数据,避免脏读,但仍可能遇到不可重复读和幻读。 3. 可重复读...
隔离级别是数据库系统解决并发控制的重要机制,它定义了事务在执行过程中如何与其他事务交互,防止出现并发操作时可能引发的问题,如脏读、幻读和不可重复读。 1. 脏读 (Dirty Read) 脏读在GBase 8s中对应于"读未...
最高级别的隔离级别,它完全避免了脏读、不可重复读和幻读。串行化通过强制事务按照一定的顺序执行来实现,从而消除了并发问题。但是,这会显著降低系统的并发性能,因为每个事务必须等待前一个事务完成才能开始。 ...
仅从ACID或非ACID角度考虑问题是不够的,你应知道你的数据库支持何种事务隔离...在本文中,我们将解释什么是事务隔离级别和脏读,并给出一些广受欢迎的数据库是如何实现它们的。ANSISQL给出了四种标准的事务隔离级别:
可重复读隔离级别进一步加强了数据的一致性,它禁止了不可重复读和脏读,但在某些情况下可能会遇到幻读(Phantom Read)的问题,即在一个事务内,同样的查询返回的行数在两次查询之间发生变化。这通常发生在事务读取...
该资源详细介绍了MySQL数据库中的事务隔离级别,包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable),并讨论了这些级别如何影响脏读、不可重复读...
1. 读未提交(read-uncommitted):允许事务读取未提交的数据,不能防止脏读,是最宽松的隔离级别。 2. 读已提交(read-committed):保证事务只能读取已经提交的数据,可以防止脏读,但不可重复读和幻读仍可能发生...
### 脏读、不可重复读与幻读详解 #### 一、概念解析 在数据库管理系统(DBMS)中,为了确保数据的一致性和完整性,引入了事务(Transaction)的概念。事务通常具备四个特性:原子性(Atomicity)、一致性(Consistency)、...
在并发事务处理过程中,可能会出现更新丢失、脏读、不可重复读和幻读等问题。这些问题都是由于多事务并发执行引起的,需要通过事务隔离机制和锁机制来解决。 事务隔离级别 数据库的事务隔离级别是用来解决读一致性...
2. 提交读(Read Committed):默认隔离级别,只读取已提交的数据,防止脏读,但仍然可能遇到不一致的读取和幻读。 3. 可重复读(Repeatable Read):在整个事务中,多次读取相同数据的结果始终一致,防止不一致的...
事务的隔离级别是数据库管理系统确保数据一致性的重要机制,它解决了并发事务执行时可能出现的问题,如读脏、不可重复读和幻读。在SQL92标准中,定义了四种事务隔离级别,分别是读未提交(Read Uncommitted)、读...
REPEATABLE READ 隔离级别在 MySQL 中具有一个显著的特性,即它通过多版本并发控制(MVCC,Multi-Version Concurrency Control)机制来防止幻读,这是与 SQL 标准中 REPEATABLE READ 级别不同的地方。SQL 标准允许幻...
MySQL的可重复读(RR)隔离级别是一种重要的事务隔离级别,旨在避免不可重复读和幻读问题,保证事务在并发环境下的一致性。ReadView(读视图)机制是实现这一隔离级别核心手段之一。本文将详细解析MySQL RR隔离级别...
4. SERIALIZABLE:最高级别的隔离,防止脏读、不可重复读和幻读,但性能最低,因为它对并发度进行了最严格的控制。 脏读是指一个事务读取了另一个事务还未提交的数据。不可重复读则是在同一事务中,两次读取同一...
- 最低的隔离级别,允许读取未提交的数据,可能导致脏读、不可重复读和幻读。 3. **ISOLATION_READ_COMMITTED** - 允许一个事务读取另一个事务提交后的数据,但不允许脏读。不可重复读和幻读仍可能发生。 4. **...
5. **Isolation.SERIALIZABLE**:最高的隔离级别,完全避免了脏读、不可重复读和幻读,但性能最差,因为需要锁定事务涉及的所有行。 在实际应用中,开发者需要根据业务需求来选择合适的事务传播属性和隔离级别,以...
Serializable(可串行化)是最严格的隔离级别,它可以防止脏读、不可重复读以及幻读。通过强制事务顺序执行,避免了并发冲突,但这可能会导致大量超时和锁竞争,影响系统性能。 在 MySQL 中,InnoDB 存储引擎通过多...