为实例开启读写分离后,可配置将读请求转发至只读节点,以降低主节点的读压力。本文介绍如何开启数据库读写分离的操作步骤。
背景信息
开启读写分离后,请求转发逻辑如下:
- 只发往主节点
- 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 等命令。
前提条件
- 已创建实例且实例状态处于运行中。具体操作,请参见创建实例。
- 已为实例创建只读节点。
- 实例的数据库代理功能状态为已开启。如需开启,请参见开启数据库代理。
操作步骤
登录云数据库 MySQL 版控制台。
在顶部菜单栏的左上角,选择实例所属的项目和地域。
说明
如未设置实例的所属项目,本操作应选择项目为账号全部资源。
在左侧导航栏单击实例列表,进入实例列表页面。
在实例列表页面,单击目标实例名称,进入实例。
在目标实例页面,单击连接管理。
在连接管理页签的终端列表中,单击目标连接终端操作列的编辑,进入编辑连接终端页面。
在编辑连接终端页面的读写分离配置区域,开启读写分离开关。
说明
如需关闭读写分离功能,只需在此处关闭读写分离开关后单击确定,无需执行其他操作。
设置只读延迟阈值。该设置的取值范围是 1~3600s 。设置阈值后,将不分配只读请求到延迟时间超过此阈值的只读节点。
说明
仅默认终端和自定义读写终端支持设置只读延迟阈值。
选择读写分离策略的分配方式。默认采用自动分配的方式。更多详情,请参见设置读写分离策略。
单击确定。
相关 API