`

关于单机数据库ACID的理解

 
阅读更多
一、在不使用MVCC情况下,隔离性、锁之间的关系:
隔离级别
并行级别
锁实现
Seriallizable
读读并行
表级锁
RR
读读并行
读加共享锁,写加独占锁
RC
读写并行、读读并行
读不加锁,写加独占锁
RU
写读并行、读写并行、读读并行
读不加锁,写不加锁

二、Oracle适用MVCC模式后:
1、Oracle没有RR隔离级别,只有serializable和RC级别:其serializable为假串行,自带解决不可重复读特性,但可能存在幻读问题;RC级别可能存在幻读问题,可以通过将数据记录加载到临时对象中解决。
2、Serializable级别中的应用测试:

 

    用户B的事务因为指定了serializable隔离级别,所以虽然在查询费用明细表之前,用户A提交了对费用明细表的更改,但是因为用户A提交的更改是在用户B的事务开始之后才提交的,所以这个更改对用户B的事务不可见。也就是说,用户B的事务开始之后,其它事务提交的更改都不会再影响事务内的查询结果,这样感觉上用户A的事务好像是在用户B的事务结束之后才执行的似的。这本来是非常好的一个特性,极大地提高了并行性,但是也会造成问题。
3、RC模式下解决“不可重复读”和“幻读”的方法
    首先,无论是“不可重现的读取(nonrepeatable read)”还是“幻读(phantom read)”,都是因为程序反复读取数据产生的。所以首先需要做的是,在一个事务里确保只读取数据一次。最好用C#而不是存储过程实现业务逻辑,这样很容易做到只读取一次,然后把结果存放到IList或IDictionary里。比较难办的是需要更新数据的情况。
 
三、悲观锁和乐观锁
悲观锁:依赖数据库隔离级别或for update实现锁
乐观锁:通过版本号自己控制,例如通过版本号方式甚至可以在读未提交情况下,实现写写并行
 
 
  • 大小: 14.8 KB
分享到:
评论

相关推荐

    C++实现的小型单机版数据库,适用于深入理解mysql

    1. 数据库架构与基本组件 ...事务管理:支持原子性、一致性、隔离性和持久性(ACID)特性,保证数据操作的可靠性。 日志与回滚:使用 Write-Ahead Logging(WAL)机制,记录数据库的所有变更,支持事务的恢复。

    淘宝数据库架构演进历程.pdf

    1. 单机数据库阶段:早期的淘宝,业务规模较小,数据量有限,主要依赖于传统的单机数据库,如MySQL等。这一阶段主要关注的是数据的存储和查询效率,以及简单的事务处理能力。 2. 集群化阶段:随着业务的发展,单机...

    h2数据库批量导出

    1. 特性:H2数据库具备跨平台、内存模式、单文件数据库、完全ACID兼容、支持多种数据库模式、高性能等特点,使其成为开发者理想的测试和原型设计工具。 2. 使用场景:H2适用于单机应用、嵌入式系统、Web应用以及...

    数据库应用技术(教你如何运用数据库)

    7. 分布式数据库和大数据:随着业务发展,单机数据库可能无法满足需求,这时需要了解分布式数据库系统,如Hadoop和Spark,以及NoSQL数据库,如MongoDB、Cassandra等。 8. 数据库管理系统(DBMS)的选择与配置:根据...

    阿里巴巴数据库操作手册

    在处理海量数据时,传统的单机数据库往往力不从心。阿里巴巴采用Hadoop、Spark等大数据处理框架,结合分布式数据库如OceanBase,实现对大数据的高效存储和分析。这部分内容将讲解这些技术的原理及应用。 五、安全与...

    TDSQL PG版部署(tbase单机版安装包)

    **TDSQL PG版部署详解:Tbase单机版安装** TDSQL(Tencent Database System)是腾讯云推出的一款...随着对系统的深入理解和业务的发展,可以进一步探索其高可用、扩展性等高级功能,以满足不断增长的数据库需求。

    分布式数据库第三版所有课件及相关资料 徐俊刚版

    分布式数据库是现代互联网技术中的重要组成部分,它解决了单机数据库在处理海量数据和高并发访问时的局限性。徐俊刚版的“分布式数据库第三版”课件及相关资料提供了全面而深入的学习资源,帮助我们理解并掌握分布式...

    葵花宝典-数据库类

    学习如何在Java中集成和使用这些分布式存储系统,能够解决单机数据库的扩展性问题。 这份名为“葵花宝典-数据库类”的文档,很可能是对以上知识点的详细讲解和实践指导,对于Java开发者来说,是一份不可多得的学习...

    数据库开发实例 数据库应用开发教程

    8. **数据库架构**:随着业务的发展,数据库可能需要从单机扩展到分布式、集群等复杂架构,了解分布式数据库、读写分离、分片等技术是必要的。 9. **NoSQL数据库**:随着大数据和云计算的发展,NoSQL数据库如...

    数据库系统概念答案

    ### 数据库系统概念详解...对于计算机系学生而言,深入理解数据库的概念、设计和管理,将为未来的职业生涯打下坚实的基础。通过学习数据库系统,不仅能掌握数据管理的核心技能,还能洞察数据驱动的世界背后的技术奥秘。

    分布式数据库架构及企业实践 基于Mycat中间件.pdf

    这种架构可以解决单机数据库在处理大量并发请求或海量数据时的性能瓶颈。 2. **Mycat中间件**:Mycat是一款开源的分布式数据库系统,它充当数据库中间件的角色,实现了SQL92标准,支持MySQL协议。Mycat的核心功能...

    数据库复试或考试习题集

    1. 单机数据库:所有数据存储在一个服务器上,适用于小规模应用。 2. 分布式数据库:数据分布在多个节点上,提高可用性和扩展性。 3. 集群数据库:多个服务器共享同一份数据,提供高可用性和负载均衡。 4. 云数据库...

    全国计算机等级考试三级数据库上机系统

    9. **数据库系统架构**:理解数据库服务器的架构,包括单机、分布式、云数据库等不同的部署模式,以及它们的优缺点。 10. **三级数据库技术上机.exe**:这个文件很可能是模拟考试系统的执行程序,考生可以通过它...

    分布式数据库技术及发展趋势研究.docx

    自2000年以来,随着互联网业务的繁荣,传统的单机数据库系统已无法满足日益增长的业务压力,从而催生了分布式数据库的发展。分布式数据库的核心在于数据的物理分布与逻辑集中的管理,它具有透明性、数据冗余性和易...

    嵌入式数据库原理与应用

    嵌入式数据库是一种轻量级、无需单独服务器进程的数据库系统,主要用于小型设备或应用程序中,如移动设备、物联网设备、单机应用等。在Java编程中,嵌入式数据库因其便捷性和高效性,被广泛应用于开发环境中。本文将...

    分布式数据库英文版清华出版社

    这一概念在信息化时代尤其重要,因为随着数据量的爆炸式增长,传统的单机数据库系统往往无法满足性能和可靠性需求。 在分布式数据库系统中,每个节点都有自己的局部数据库,这些局部数据库通过网络相互连接,并协同...

    分布式数据库ppt

    3. **事务处理**:在分布式数据库中,事务的处理比单机数据库更为复杂。ACID(原子性、一致性、隔离性、持久性)属性需要在分布式环境中得到保障,这通常需要分布式事务协议,如两阶段提交(2PC)、三阶段提交(3PC...

    大型数据库

    首先,我们需要理解什么是大型数据库。大型数据库是指能够处理海量数据,并且在高并发环境下保持高效稳定运行的数据库系统。它们通常具有强大的数据处理能力,支持复杂的查询操作,以及严格的事务处理和数据一致性。...

    数据库应用原理及应用 最新版

    例如,Google的Bigtable、Amazon的DynamoDB等都是分布式数据库的代表,它们解决了单机数据库在容量和性能上的瓶颈,适应了大规模数据处理的需求。 总的来说,数据库应用原理及应用是一门综合性的学科,它涵盖了数据...

    数据库demo

    9. **并发访问**:虽然SQLite不是为了多用户环境设计,但在单机多线程环境下,理解其锁机制和并发控制策略对提高系统性能很有帮助。 这个"数据库demo"可能是对这些问题的实践示例,包含了错误案例、正确操作和优化...

Global site tag (gtag.js) - Google Analytics