基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
事务相关规范
更新时间:2026-04-16 00:11:36
本文介绍在 OceanBase 数据库关于事务的规范。
OB 3.x 版本对对大事务本身没有大小限制,但是要控制好并发量,防止内存使用激增。
对 where 子句中的 in 列表参数的个数不再限制。
在 OBServer 节点初始化时,对 MemStore 的内存使用率达到 80% 时开启写入进行了限速:
alter system set writing_throttling_trigger_percentage = 80 TENANT = ALL;
注意
限速会限制 clog 回放速度,可能会影响转储的触发时机。
批量操作数据时,需要程序必须有中断处理能力,以及事务失败重试机制。
由于 OceanBase 的分布式事务采用两阶段提交的方式,需要事务有失败重试和事务状态未决检查执行状态的机制。
前端程序中禁止使用除
set names以外的 set 语句,包括set timezone,set SQL_mode和set isolation_level等类似命令。当需要唯一的主键时,序列是非常有用,序列也能提供全局唯一且连续的整数。
限制会话的并发数。
如果一个租户有 n 个 CPU,通常该租户最多有
10*n个用户会话是同时活动的,此后增加的每个额外的并发会话,在活跃之前将等待一个可用的工作线程。开启自动提交事务,不推荐执行
set @@autocommit=xx,推荐使用Connection.setAutoCommit(xx)接口。开启事务,不推荐执行
start transaction/begin,推荐使用Connection.setAutoCommit(xx)接口。完结事务,不推荐执行
commit/rollback,推荐使用接口Connection.commit()/Connection.rollback()接口。