• 数据库事务隔离级别


    原文链接
    http://blog.csdn.net/xifeijian/article/details/20313977
     
    数据库实现事务隔离的方式,基本上可分为以下两种。
     
    1.一种是在读取数据前,对其加锁,阻止其他事务对数据进行修改。
     
    2.另一种是不用加任何锁,通过一定机制生成一个数据请求时间点的一致性数据快照(Snapshot),并用这个快照来提供一定级别(语句级或事务级)的一致性读取。从用户的角度来看,好像是数据库可以提供同一数据的多个版本,因此,这种技术叫做数据多版本并发控制(MultiVersion Concurrency Control,简称MVCC或MCC),也经常称为多版本数据库。
     
    数据库的事务隔离越严格,并发副作用越小,但付出的代价也就越大,因为事务隔离实质上就是使事务在一定程度上 “串行化”进行,这显然与“并发”是矛盾的。同时,不同的应用对读一致性和事务隔离程度的要求也是不同的,比如许多应用对“不可重复读”和“幻读”并不敏感,可能更关心数据并发访问的能力。
     
     
    为了解决“隔离”与“并发”的矛盾,ISO/ANSI SQL92定义了4个事务隔离级别,每个级别的隔离程度不同,允许出现的副作用也不同,应用可以根据自己的业务逻辑要求,通过选择不同的隔离级别来平衡 “隔离”与“并发”的矛盾。表20-5很好地概括了这4个隔离级别的特性。
     
    读数据一致性及允许的并发副作用
    隔离级别
    读数据一致性
    脏读
    不可重复读
    幻读
    未提交读(Read uncommitted)
    最低级别,只能保证不读取物理上损坏的数据
    已提交度(Read committed)
    语句级
    可重复读(Repeatable read)
    事务级
    可序列化(Serializable)
    最高级别,事务级
  • 相关阅读:
    Roman to Integer
    Remove Element
    Maximum Subarray
    Climbing Stairs
    Binary Tree Preorder Traversal
    C++引用和指针
    adb
    Traceview
    解析xml
    SDK manager 下载不同版本sdk
  • 原文地址:https://www.cnblogs.com/yfdream/p/7843272.html
Copyright © 2020-2023  润新知