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

前提条件

实例已开通数据库独享代理

背景信息

默认情况下,RDS数据库独享代理会将事务内的所有请求都发送到主实例以保障事务的正确性,但是某些框架会将所有请求封装到事务中,导致主实例负载过大。此时您可以开启事务拆分功能。

开启事务拆分后,在默认的Read Commited隔离级别下,当RDS接收到开启事务的语句(例如begin或set autocommit=0)时,不会立即开启事务,而是在发生写操作时才正式开启事务,正式开启事务前的读请求会通过负载均衡模块分流至只读实例。

说明 某些业务对全局一致性有要求,开启事务拆分后将不满足全局一致性,因此在开启事务拆分前请评估事务拆分功能是否适用于您的业务。
事务拆分_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第1张

操作步骤

  1. 登录RDS管理控制台
  2. 在页面左上角,选择实例所在地域。
    事务拆分_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第2张
  3. 找到目标实例,单击实例ID。
  4. 在左侧导航栏中单击数据库代理
  5. 事务拆分右侧单击开通
    说明
    • 不需要使用事务拆分时可以单击事务拆分右侧的关闭按钮进行关闭。
    • 开通或关闭事务拆分立即对新老连接生效。
    事务拆分_数据库代理_RDS MySQL 数据库_云数据库 RDS 版 阿里云技术文档 第3张