ANSI 和 ISO/IEC 基于 SQL 标准定义了四种隔离级别,OceanBase 数据库目前支持了以下几种隔离级别:
MySQL 模式
读已提交(Read Committed)
可重复读(Repeatable Read)
OceanBase 数据库默认的隔离级别为读已提交(Read Committed)。
设置隔离级别的方式有两种,分别为事务级别及 Session 级别:
事务级别
设置事务的隔离级别时,应注意以下事项:
Oracle 租户开启可串行化隔离级别时,需要确保全局时间戳服务(Global Timestamp Service,简称 GTS)为开启状态。
您可以执行以下语句,查看并开启 GTS 。
Session 需要维护 Session 级别的事务隔离级别,在开启事务时需要获取 Session 级别的事务隔离级别。该隔离级别可以被 事务级别的隔离级别覆盖。
查看当前事务隔离级别的语句如下:
使用限制
内部事务
由用户事务触发的内部事务,以及维护内部表信息的事务都称为内部事务,内部事务采用 Read Committed 隔离级 别。