tencent cloud

云数据库 MariaDB

动态与公告
产品动态
产品简介
产品概述
产品优势
应用场景
系统架构
实例类型
实例架构
分布式版本
数据库版本
购买指南
计费概述
产品定价
退费说明
欠费说明
升级计费
备份空间计费
快速入门
创建实例
管理账号
连接实例
操作指南
使用前须知
实例管理
灾备/只读实例
账号管理
读写分离
修改网络
备份与回档
数据迁移
数据库同步(旧版)
安全管理
监控与告警
KILL 线程
参数模板与设置
数据库审计
实践教程
编程与使用规范
分布式版本编程与使用规范
利用热点更新技术应对秒杀场景
安全白皮书
平台侧安全设计
租户侧安全功能
开发指南
功能限制
性能检测
同城双活解决方案
Binlog 日志消费格式
慢查询分析
数据库审计
数据库审计已支持语法
API 文档
History
Introduction
API Category
Making API Requests
Security Group APIs
Other APIs
Account APIs
Parameter Management APIs
Monitoring Management APIs
Instance Management APIs
Backup and Restoration APIs
Data Types
Error Codes
常见问题
产品常见问题
账号登录问题
功能相关问题
性能相关问题
备份相关问题
运维相关问题
磁盘超用问题
IO 类监控项异常问题
通用参考
标准与认证
主要规格性能说明
强同步性能对比数据
词汇表

读写分离

PDF
聚焦模式
字号
最后更新时间: 2024-01-11 11:14:10

读写分离概述

云数据库 MariaDB 默认支持读写分离能力,架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上。

基于只读账号的读写分离

只读账号是一类仅有读权限的账号,默认从数据库集群中的从机(或只读实例)中读取数据。MariaDB 可以在 控制台 实例管理页的账号管理页中,设置只读账号和读策略:

在只读账号设置选项中,您可以设置只读请求分配策略,定义在备机故障(或延迟较大)时的读策略。只读备机延迟参数定义数据同步延迟时间,并与只读请求分配策略配合使用:

配置建议(例如您设计的是某交易系统):
核心交易模块:设置常规账号,可读写。
余额查询模块:设置只读账号,默认读备机;请求分配策略:备机故障读主机,并将延迟参数设置在十秒内,以保证主从性能和用户查询的数据一致性。
批量查询模块:设置只读账号,默认读备机;请求分配策略:备机故障报错,延迟参数可设置在三十秒以上,以保证不影响主库性能。
另外,由于强同步机制是将数据写入从机事务日志后,即返回应答,这时从机库表数据可能并未更新,因此也会有延迟。

基于注释的读写分离

在每条需要从机“读”的 SQL 前,增加 /*slave*/ 字段,且 mysql 后面要增加 -c 参数来解析注释mysql -c -e "/*slave*/sql",即可自动将读请求分配到从机,示例如下:
//主机读//
select * from emp order by sal,deptno desc;
//从机读//
/*slave*/ select * from emp order by sal,deptno desc;
注意:
该功能仅支持从机读(select),不支持其他操作,非 select 语句将失败。
mysql 客户端需要增加 -c 参数来解析注释。
/*slave*/必须为小写,语句前后无空格。
从机出现异常而影响到 MAR(强同步)机制时,从机读操作将自动切换回主机。

只读实例(异地只读实例)

如果上述读写分离方案无法满足您的需求,云数据库 MariaDB 提供只读实例供您使用。只读实例是独立的数据库实例,不参与原主实例高可用切换,仅用于读性能扩展。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈