tencent cloud

TDSQL-C MySQL 版

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
产品优势
应用场景
产品架构
产品规格
实例类型
产品功能列表
数据库版本
地域和可用区
常用概念
使用限制
使用规范建议
自研内核
内核概述
内核版本更新动态
内核优化版本
功能类特性
性能类特性
安全类特性
稳定性特性
分析引擎特性
内核问题检查与修复
购买指南
计费概述
产品价格
创建集群
变配说明
续费说明
欠费说明
退费说明
按量转包年包月
按量转 Serverless
增值服务计费说明
查看费用账单
快速入门
数据库审计
简介
查看审计实例列表
开通审计服务
查看审计日志
日志投递
配置事后告警
修改审计规则
修改审计服务
关闭审计服务
审计规则模板
查看审计任务
授权子用户使用数据库审计
Serverless 服务
Serverless 简介
创建和管理 Serverless 版集群
弹性管理工具
Serverless 资源包
多可用区部署
配置变更
常见问题
Serverless 成本预估器
操作指南
操作总览
控制台切换集群页面视图
数据库连接
实例管理
配置变更
实例形态管理
集群管理
只读实例管理
数据库代理
账号管理
数据库管理
数据库管理工具(DMC)
参数配置
多可用区部署
全球数据库
备份与恢复
操作日志
迁移数据
并行查询
列存索引 CSI
分析引擎
数据库安全和加密
监控与告警
SQL 基本操作
使用 SCF 连接 TDSQL-C MySQL 版
标签
实践教程
TDSQL-C MySQL 版数据库审计等保实践
通过 DTS 升级数据库版本 MySQL5.7至8.0
TDSQL-C MySQL 版使用规范
新版本控制台
数据库代理多连接地址实现多 RO 组
数据库代理的优势
如何选择存储空间计费模式
通过 DTS 构建异地灾备
为集群创建 VPC
如何进行数据恢复
如何解决 CPU 使用率高的问题
如何授权子用户查看监控
白皮书
安全白皮书
性能白皮书
故障处理
连接相关
性能相关
API 文档
History
Introduction
API Category
Making API Requests
Instance APIs
Multi-Availability Zone APIs
Other APIs
Audit APIs
Database Proxy APIs
Backup and Recovery APIs
Parameter Management APIs
Billing APIs
serverless APIs
Resource Package APIs
Account APIs
Performance Analysis APIs
Data Types
Error Codes
常见问题
基础概念
购买与计费
兼容与格式
连接与网络
功能特性
控制台操作
数据库表
性能与日志
数据库审计
TDSQL-C MySQL 版和云数据库 MySQL 有什么区别
相关协议
服务等级协议
服务条款
TDSQL-C 政策
隐私政策
数据处理和安全协议
通用参考
标准与认证
词汇表
联系我们

一致性级别

PDF
聚焦模式
字号
最后更新时间: 2026-01-29 18:04:29
TDSQL-C MySQL 版的自动读写分离功能,会在 TDSQL-C MySQL 版与应用程序间建立好连接,进而解析发送进来的每一条 SQL,如果是 CREATE、ALTER、DROP、RENAME 等语句则直接发往读写实例,如果是事务外的读(SELECT)语句则发送到只读实例,从而实现了读写分离。但是当数据库负载很高,如大批量插入数据的时候,延迟会非常严重,导致无法从只读节点中读取最新数据。
当读写实例有数据更新后,相关的更新会应用到只读实例,其中数据同步的延迟时间与写入压力有关。TDSQL-C MySQL 版通过提供不同的一致性级别,来保证业务访问数据库的数据一致性要求。
TDSQL-C MySQL 版提供了以下三种一致性级别,满足您在不同场景下对一致性的要求:
最终一致性
会话一致性
全局一致性

最终一致性

功能简介 TDSQL-C MySQL 版的数据库代理实现了自动读写分离功能,在自动读写分离场景下默认提供数据的最终一致性,从而保证只读实例对已改变写的数据的读取,最终都能取得已更新的数据,但不完全保证能立即取得。已更新的数据主从复制延迟会导致从不同节点查询到的结果不同。
适用场景 如需要减轻读写实例压力,让尽量多的读请求路由到只读实例,对一致性要求不是很高的场景您可以选择最终一致性。

会话一致性

功能简介 有些场景要求一致性较高,而最终一致性会导致查询的结果有所不同,通常需要对业务进行拆分,将一致性要求高的请求直接发往读写实例,而可以接受最终一致性的请求则通过读写分离发往只读实例。这既会增加读写实例的压力,影响读写分离的效果,又会增加应用开发的负担。
为解决上述问题,TDSQL-C MySQL 版提供会话一致性。会话一致性保证了同一个会话内,一定能够查询到读请求执行前已更新的数据,确保了数据单调性。
在 TDSQL-C MySQL 版的链路中间层做读写分离的同时,中间层会追溯各个节点已经应用的日志位点,即日志序号(Log Sequence Number,简称 LSN)。同时每次数据更新时 TDSQL-C MySQL 版会记录此次更新的位点为 Session LSN。当有新请求到来时, TDSQL-C MySQL 版会比较 Session LSN 和当前各个实例的 LSN,仅将请求发往 LSN 大于或等于 Session LSN 的实例,从而保证了会话一致性。

在上述场景中,当更新完成后,返回客户端结果时复制也在同步进行,而当下一个读请求到来时,读写实例和只读实例之间的数据复制有可能已经完成。且大多数应用场景都是读多写少,所以在该机制下保证了会话一致性。
适用场景 适用于对一致性有较高要求的场景,TDSQL-C MySQL 版的一致性级别越高,对主库的压力越大,集群性能也越低。推荐使用会话一致性,该级别对性能影响很小而且能满足绝大多数应用场景的需求。
注意:
开启会话一致性后,如果读写实例与只读实例复制时延较大,各个读节点 LSN 均小于 Session LSN,会导致 SELECT 请求发送到读写实例,从而增大读写实例的压力,整个集群的读写性能会有一定的降低。

全局一致性

功能简介 某些场景对一致性要求极高,除了会话内部有逻辑上的因果依赖关系,会话之间也存在依赖关系,例如在使用连接池的场景下,同一个线程的请求有可能通过不同连接发送出去。对数据库来说这些请求属于不同会话,但是业务逻辑上这些请求有前后依赖关系,此时会话一致性便无法保证查询结果的一致性。因此 TDSQL-C MySQL 版提供了全局一致性来解决该问题。
适用场景 适用于对一致性要求极高的场景,当主从延迟较高时,使用全局一致性可能会导致更多的请求被路由到读写实例,造成读写实例压力增大,业务延迟也可能增加。因此建议在读多写少的场景下选择全局一致性。

设置一致性级别

说明:
设置一致性级别需先设置数据库代理的读写属性为读写分离,在 设置数据库代理读写属性 的步骤中即可设置会话一致性级别,如需修改一致性级别,请参考以下步骤。
一致性级别的变更仅针对新连接生效。若您需要立即重置连接让参数生效,可以使用重新负载均衡功能或者重启实例。
1. 登录 TDSQL-C MySQL 版控制台,在集群列表,选择已开启代理的集群,单击集群 ID,进入集群管理页面。
2. 集群管理 > 集群详情下的拓扑图中,鼠标移动到数据库代理板块,然后单击详情进入数据库代理管理页面。或在集群管理页面直接选择数据库代理页进入数据库代理管理页面。
3. 在连接地址下找到目标访问地址,在其操作列单击调整配置

4. 在配置窗口下,选择所需的一致性级别,单击确定

说明:
若一致性设置为会话一致性或全局一致性,您需对读写实例和只读实例之间的数据复制设置超时时间,取值范围:0 - 1000000毫秒,设置为0,则表示若只读实例出现延迟,导致一致性策略不满足,请求将一直等待,设置为非0,如设置1000毫秒,则表示若只读实例出现延迟,超过设置的1000毫秒后,请求将由系统自动转发到主实例。
温馨提示,当前同一云账号下多个数据库代理实例不支持单独设置各自的超时时间,多个数据库代理实例的超时时间只能统一生效一份,单个数据库代理实例修改超时时间,会导致多个数据库代理实例的超时时间都统一修改。

相关 API

API
描述
本接口(ModifyProxyRwSplit)用于配置数据库代理读写分离。

帮助和支持

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

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

文档反馈