ITPub博客

首页 > 数据库 > 国内数据库 > 【手摸手玩转 OceanBase 138】事务相关规范

【手摸手玩转 OceanBase 138】事务相关规范

原创 国内数据库 作者:13579NB232 时间:2023-01-19 16:32:43 0 删除 编辑

本文介绍在 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 和 s et isolation_level 等类似命令。

  • 当需要唯一的主键时,序列是非常有用,序列也能提供全局唯一且连续的整数。

  • 限制会话的并发数。

    如果一个租户有 n 个 CPU,通常该租户最多有  10*n 个用户会话是同时活动的,此后增加的每个额外的并发会话,在活跃之前将等待一个可用的工作线程。

  • 开启自动提交事务,不推荐执行  set @@autocommit=xx,推荐使用  Connection.setAutoCommit(xx) 接口。

  • 开启事务,不推荐执行  start transaction/begin,推荐使用  Connection.setAutoCommit(xx) 接口。

  • 完结事务,不推荐执行  commit/rollback,推荐使用接口  Connection.commit()/Connection.rollback() 接口。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932849/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    184
  • 访问量
    93205