`
zgqynx
  • 浏览: 1356042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

脏数据,脏读,不可重复读,幻觉读

 
阅读更多
原文http://www.128kj.com/article/article17/6094A5983AECEB5292710B4EC8AABAE7.htm?id=1506

什么是脏数据,脏读,不可重复读,幻觉读?

以下几个术语常见于数据库文章、论文。操作系统分析中亦有涉及。 

             脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。

          不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

         幻觉读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
分享到:
评论
1 楼 walkman_22 2012-04-18  

相关推荐

    脏读不可重复读幻影读

    ### 脏读、不可重复读与幻读详解 #### 一、概念解析 在数据库管理系统(DBMS)中,为了确保数据的一致性和完整性,引入了事务(Transaction)的概念。事务通常具备四个特性:原子性(Atomicity)、一致性(Consistency)、...

    并发控制指的是当多个用户同时更新行时,用于保护数据库完整性的各种技术。并发机制不正确可能导致脏读、幻读和不可重复读等此类问题。

    并发控制的主要目标是避免事务之间的冲突,防止出现诸如脏读、不可重复读和幻读等问题。 脏读发生在事务T1读取了事务T2还未提交的修改数据,然后T2因为某种原因回滚了更改。在这种情况下,T1读到的数据实际上是错误...

    数据库锁(行锁,表锁,共享锁,排他锁)脏读、不可重复读、幻读和事物隔离级别

    1. 读未提交(Read Uncommitted):允许读取未提交的数据,可能导致脏读、不可重复读、幻读。 2. 读提交(Read Committed):仅能读取已提交的数据,避免脏读,但仍可能遇到不可重复读和幻读。 3. 可重复读...

    50 听起来很恐怖的数据库幻读,到底是个什么奇葩问题?l.pdf

    - 读未提交(Read Uncommitted):最低的隔离级别,允许事务读取尚未提交的数据变更,可能会导致脏读、不可重复读和幻读。 - 读已提交(Read Committed):保证一个事务只能读取已经提交的事务所做的修改,可以防止...

    20.幻读是什么幻读有什么问题?1

    - 可重复读(Repeatable Read):在同一事务内,多次读取相同数据的结果保持一致,防止脏读和不可重复读,但可能存在幻读。 - 串行化(Serializable):最严格的隔离级别,通过锁定所有涉及的行,确保事务按顺序执行...

    浅析SQL Server的锁机制

    它通过控制不同事务对共享资源的访问,防止并发操作带来的数据冲突,如丢失更新、脏读、不可重复读和幻觉读等常见问题。 1. 丢失更新:当两个事务同时对同一数据行进行更新时,最后一个更新会覆盖掉第一个事务的...

    Oracle中使用锁进行并发控制

    锁的运用是并发控制的核心,它能够在多用户环境中协调不同事务的操作,防止数据冲突和异常状态的出现,如脏读、不可重复读和幻觉读。 ### 并发控制的重要性 在现代数据库系统中,尤其是像Oracle这样的大型关系型...

    快速对SQL Server锁机制进行掌握的窍门

    不同的隔离级别决定了事务如何处理脏读、不可重复读和幻读等问题。 4. **脏读、不可重复读和幻读**: - 脏读:一个事务读到了另一个未提交事务的数据修改。 - 不可重复读:同一事务中,两次读取同一数据,结果不...

    数据库事务与隔离级别.docx

    数据库事务与隔离级别 数据库事务是指一系列操作的集合,作为一个单元执行,以维护数据库的一致性和...数据库提供了多种隔离级别以避免这些问题,例如Serializable(串行化)可以避免脏读、不可重复读、幻读的发生。

    sql server锁机制

    不可重复读可以通过可重复读(Repeatable Read)隔离级别解决,事务A在整个事务期间都能看到一致性视图,不受其他事务的影响。 4. **幻觉读**:事务A在读取数据后,事务B插入了新的行,导致事务A再次读取时看到“新...

    2021面试题总结MySQL篇.pdf

    - **定义**:最高级别的隔离级别,确保所有 SQL 操作按顺序执行,彻底解决脏读、不可重复读及幻读等问题。 - **特点**:虽然能保证数据一致性,但性能较低。 ### 幻读 - **定义**:在同一事务下,连续执行相同的 ...

    sqlserver中的事务和锁详细解析

    - 序列化(Serializable):最高隔离级别,防止脏读、不可重复读和幻读,但并发性能最低。 在SQL Server中,通过设置事务的隔离级别,可以控制这些并发问题的程度。正确理解和使用事务和锁对于开发高效且可靠的...

    20 数据库高频知识点.docx

    - **读未提交(Read Uncommitted)**:最低的隔离级别,允许事务读取未提交的数据,可能会出现脏读、不可重复读和幻读。 - **读已提交(Read Committed)**:只能读取已经提交的数据,可以避免脏读,但仍然可能出现...

    Spring中的事务隔离级别的介绍

    * 未提交读(Read Uncommitted):脏读、不可重复读和虚读都有可能发生。 * 已提交读(Read Committed):避免脏读。但是不可重复读和虚读有可能发生。 * 可重复读(Repeatable Read):避免脏读和不可重复读。但是...

    三份数据库并发处理方案

    并发控制的主要目标是防止多个事务在执行过程中产生冲突,例如丢失更新、脏读、不可重复读和幻读等问题。以下是一些关键知识点: 1. **事务**: 事务是数据库操作的基本单位,具有原子性、一致性、隔离性和持久性...

    数据库的四种隔离级别

    总结来说,数据库的四种隔离级别分别是读未提交、读已提交、可重复读和串行化,它们分别针对不同的并发问题:脏读、不可重复读和幻读。理解这些隔离级别及其相互关系,对于理解和优化数据库系统的并发行为至关重要。...

    halo-data-isolation:数据隔离器

    它基于事务的ACID(原子性、一致性、隔离性、持久性)特性中的隔离性,旨在防止脏读、不可重复读和幻读等问题的发生。让我们逐一解析这些概念: 1. **脏读**:当一个事务读取了另一个未提交事务修改的数据,如果这...

    Mysql事务处理详解

    4. **串行化(Serializable)**:最严格的隔离级别,所有事务按顺序执行,防止脏读、不可重复读和幻读,但可能降低并发性能。 通过`SET TRANSACTION ISOLATION LEVEL`语句可以设置事务隔离级别。 在实际应用中,...

Global site tag (gtag.js) - Google Analytics