You need to enable JavaScript to run this app.
导航

开启读写分离

最近更新时间2024.04.25 15:24:58

首次发布时间2021.10.11 18:06:04

为实例开启读写分离后,可配置将读请求转发至只读节点,以降低主节点的读压力。本文介绍如何开启数据库读写分离的操作步骤。

背景信息

开启读写分离后,请求转发逻辑如下:

  • 只发往主节点
    • INSERT、UPDATE、DELETE、SELECT FOR UPDATE、SELECT LOCK IN SHARE MODE。
    • 所有用户操作(CREATE/DROP/GRANT USER 等)。
    • 所有 DDL 操作(建表/库、删表/库、变更表结构等)。
    • 所有事务中的请求(包括 SET autocommit=0 )。
    • LOCK 相关语句。
    • 用户自定义函数。
    • 存储过程。
    • EXECUTE 语句。
    • Multi Statements
    • 使用到临时表的请求。
    • SELECT last_insert_id()。
    • 所有对用户变量的查询和更改。
    • KILL (SQL 语句中的 KILL,非命令 KILL)。
    • 查询语句中的锁函数。
  • 发往只读节点或主节点
    • 非事务中的 SELECT。
    • 非事务中 SHOW VARIABLES。
    • COM_STMT_EXECUTE 命令。
  • 总是发往所有节点
    • 所有系统变量的更改。
    • USE 命令。
    • SHOW PROCESSLIST (代理将返回所有节点的 PROCESSLIST 汇总信息)。
    • COM_STMT_PREPARE 命令。
    • COM_CHANGE_USER/COM_QUIT/COM_SET_OPTION 等命令。

前提条件

  • 已创建实例且实例状态处于运行中。具体操作,请参见创建实例
  • 已为实例创建只读节点。
  • 实例的数据库代理功能状态为已开启。如需开启,请参见开启数据库代理

操作步骤

  1. 登录云数据库 MySQL 版控制台

  2. 在顶部菜单栏的左上角,选择实例所属的项目和地域。

说明

如未设置实例的所属项目,本操作应选择项目为账号全部资源

  1. 在左侧导航栏单击实例列表,进入实例列表页面。

  2. 实例列表页面,单击目标实例名称,进入实例。

  3. 在目标实例页面,单击连接管理

  4. 连接管理页签的实例拓扑区域,单击目标终端卡片的编辑按钮,进入编辑连接终端页面。

  5. 编辑连接终端页面的读写分离区域,开启读写分离开关。

  6. 设置只读延迟阈值。该设置的取值范围是 1~3600s 。设置阈值后,将不分配只读请求到延迟时间超过此阈值的只读节点。

    说明

    仅默认终端和自定义读写终端支持设置只读延迟阈值。

  7. 选择读写分离策略的分配方式。默认采用自动分配的方式。更多详情,请参见设置读写分离策略