开发者社区> 问答> 正文

在OceanBase数据库中的这个事务隔离级别简介是不是写错了?

展开
收起
曹凯1211 2023-08-16 21:00:56 289 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    OceanBase数据库的事务隔离级别应该和传统的关系型数据库(如MySQL)有所不同,因为OceanBase是一个分布式数据库系统,并且具有自己的架构和特性。

    一般来说,事务隔离级别是指在数据库中处理并发事务时,事务之间相互隔离的程度。常见的事务隔离级别包括读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。每个隔离级别都有不同的特点和权衡。

    2023-08-18 22:10:12
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    可能是不够严谨,不影响理解,Oracle和Mysql数据库事务隔离级别都是

    • 未提交读 Read Uncommited
    • 已提交读 Read Commited
    • 可重复读 Repeatable read
    • 串行化 Serialized
    2023-08-17 14:52:00
    赞同 展开评论 打赏
  • 没错啊
    image.png

    隔离级别是根据事务并发执行过程中必须防止的现象来定义的。

    可防止的现象包括:

    脏读(Dirty Read):一个事务读到其他事务尚未提交的数据。

    不可重复读(Non Repeatable Read):曾经读到的某行数据,再次查询发现该行数据已经被修改或者删除。例如:select c2 from test where c1=1;第一次查询 c2 的结果为 1,再次查询由于其他事务修改了 c2 的值,因此 c2 的结果为 2。

    幻读(Phantom Read):只读请求返回一组满足搜索条件的行,再次执行发现另一个提交的事务已经插入满足条件的行。

    基于上述三种现象,ANSI 和 ISO/IEC 定义了四种隔离级别,这四种隔离级别如下:

    读未提交(Read Uncommitted)

    读已提交(Read Committed)

    可重复读(Repeatable Read)

    可串行化(Serializable)

    四种隔离级别比较如下所示。
    image.png

    OceanBase 数据库目前支持了以下几种隔离级别:

    Oracle 模式

    读已提交(Read Committed)

    可重复读(Repeatable Read)

    可串行化(Serializable)

    MySQL 模式

    读已提交(Read Committed)

    可重复读(Repeatable Read)

    可串行化(Serializable)

    该隔离级别类似 Oracle 数据库的 Serializable,并非严格意义上的 Serializable。

    OceanBase 数据库默认的隔离级别为读已提交(Read Committed)。

    2023-08-17 08:48:14
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载