---
title: "事务隔离级别概述 | OceanBase 文档中心"
description: 事务隔离级别概述 隔离级别是根据事务并发执行过程中必须防止的现象来定义的。 可防止的现象包括： 脏读（Dirty Read）：一个事务读到其他事务尚未提交的数据。 不可重复读（Non Repeatable Read）：曾经读到的某行数据，再次查询发现该行数据已经被修改或者删除。例如： select c2 from t…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 事务隔离级别概述

更新时间：2023-07-18 17:25:59

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

可防止的现象包括：

- 脏读（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）

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

| 隔离级别 | 脏读 | 不可重复读 | 幻读 |
| --- | --- | --- | --- |
| **读未提交** | 可能 | 可能 | 可能 |
| **读已提交** | 不会 | 可能 | 可能 |
| **可重复读** | 不会 | 不会 | 可能 |
| **可串行化** | 不会 | 不会 | 不会 |

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

- Oracle 模式

     - 读已提交（Read Committed）
     - 可重复读（Repeatable Read）
     - 可串行化（Serializable）
 - MySQL 模式

     - 读已提交（Read Committed）
     - 可重复读（Repeatable Read）
     - 可串行化（Serializable）

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

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

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
