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

什么是读写分离

最近更新时间2024.01.15 16:56:37

首次发布时间2023.09.27 10:03:39

云数据库 veDB MySQL 版实例默认支持读写分离功能。客户端只需要通过连接终端的地址连接实例,数据库代理会自动将写请求发送至主节点,将读请求按照负载均衡策略发送至主节点或只读节点。

原理介绍

veDB MySQL 的读写分离功能将请求流量分散到不同的节点上,其中 UPDATEDELETEINSERTCREATE 等写操作仅由主节点处理,而 SELECT 读操作则会自动分摊到所有节点处理,从而实现读写分离。veDB MySQL 每个实例仅包含一个主节点,最多支持 15 个只读节点,能够极大地提升查询效率,降低主节点压力。

读写分离策略

终端模式转发策略请求类型

读写终端

仅发送到主节点的请求

  • 所有 DDL 和 DML 操作。
  • 所有事务中的请求。

    说明

    开启事务拆分后的第一个写请求之前的所有读请求都会发送到只读节点。

  • 自定义函数。
  • 存储过程。
  • EXECUTE 语句。
  • 使用到临时表的请求。
  • SELECT last_insert_id()

同时发送到主节点和只读节点的请求

  • 非事务读请求。
  • COM_STMT_EXECUTE 命令(执行预处理 SQL)。

说明

开启了主节点接受读功能后,同时发往主节点和只读节点的请求。

总是发送到所有节点的请求

  • 所有系统变量的更改请求。
  • USE 命令。
  • 用户变量的查询和更改。
  • KILL(终止数据库连接或取消正在运行的 SQL)。
  • COM_STMT_PREPARE 命令。
  • COM_CHANGE_USERCOM_QUITCOM_SET_OPTION 等命令。
只读终端不允许处理写请求的操作,所有读请求会基于活跃请求数发送到各个只读节点。

功能特性

云数据库 veDB MySQL 版的读写分离功能主要包含以下特性: