更新时间:2025-08-18 GMT+08:00

开启TaurusDB代理的事务拆分功能

操作场景

默认情况下,云数据库 TaurusDB数据库代理会将事务内的所有请求都发送到主节点以保障事务的正确性,但是某些框架会将所有请求封装到非自动提交的事务中(通过set autocommit=0;关闭自动提交),导致主节点负载过大。

数据库代理提供了事务拆分的功能,能够将事务内写操作之前的读请求转发到只读节点,降低主节点负载。

事务拆分功能默认关闭。开启事务拆分后,当云数据库 TaurusDB关闭自动提交后,仅会在发生写操作时才正式开启事务,正式开启事务前的读请求会根据路由规则分发至对应节点。

原理介绍

  • 未开启事务拆分

    未开启事务拆分时,事务中的所有请求均会路由到主节点以保障事务读写一致性。

  • 开启事务拆分

    开启事务拆分后,代理会将事务中第一个写前的读请求分发到只读节点,从而减轻主节点的负载。

使用须知

  • 设置事务拆分需要满足数据库代理内核版本为2.3.9.5及以上。内核版本的查询方法请参见如何查看云数据库 TaurusDB实例的版本号
  • “READ-UNCOMMITTED”“READ-COMMITTED”级别支持事务拆分。
  • 仅读写模式的数据库代理支持事务拆分功能。
  • 当事务拆分功能开启后,仅支持将事务隔离级别修改为“READ-UNCOMMITTED”“READ-COMMITTED”,若需要将事务隔离级别修改至更高的级别,需要关闭事务拆分功能。
  • 开启事务拆分后,使用BEGIN提交事务后的读请求暂时不支持拆分到只读库。

操作步骤

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 在页面左上角单击,选择数据库 > 云数据库 TaurusDB
  4. “实例管理”页面,选择目标实例,单击实例名称,进入实例概览页面。
  5. 在左侧导航栏,单击“数据库代理”
  6. 在“数据库代理”页面,选择目标代理实例,单击代理实例名称。
  7. 在“基本信息”页面,单击“事务拆分”后的
  8. 在弹框中单击“确定”,开启事务拆分。

    • 开启事务拆分功能后,如需关闭,可单击,进行关闭。
    • 开启或关闭事务拆分后仅对新连接生效。

  9. 在代理实例的基本信息页面查看事务拆分已开启。