tencent cloud

TDSQL MySQL 版

公告
告警升级公告
产品简介
产品概述
产品优势
应用场景
地域和可用区
InnoDB 引擎
购买指南
计费概述(InnoDB)
产品定价(InnoDB)
购买升级
退费说明
欠费说明
备份空间计费
快速入门
InnoDB 引擎
操作指南(InnoDB)
实例管理
灾备/只读实例
修改网络
账号管理
安全管理
慢查询分析
备份与回档
数据迁移
数据库审计
实践教程
从单机实例导入到分布式实例
从分布式实例导入到分布式实例
选择实例配置和分片配置
安全白皮书
平台侧安全设计
租户侧安全功能
开发指南
InnoDB 引擎
API 文档
History
Introduction
API Category
Security Group APIs
Other APIs
Making API Requests
TDSQL APIs
Data Types
Error Codes
常见问题
InnoDB 引擎相关
通用参考
强同步性能对比数据
词汇表
联系我们

产品概述

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 12:20:10

简介

TDSQL MySQL 版是部署在腾讯云上的一种支持自动水平拆分、Shared Nothing 架构的分布式数据库。分布式数据库即业务获取的是完整的逻辑库表,而后端会将库表均匀的拆分到多个物理分片节点。TDSQL 默认部署主备架构,提供容灾、备份、恢复、监控、迁移等全套解决方案,适用于 TB 或 PB 级的海量数据库场景。

产品特点

OLTP

TDSQL 是面向 OLTP 业务的分布式数据库。

水平拆分

TDSQL 是支持水平拆分的分布式数据库。
水平切分是按照某种规则,将一个表的数据分散到多个物理独立的数据库服务器中,形成“独立”的数据库“分片”。多个分片共同组成一个逻辑完整的数据库实例。

Shared Nothing 架构

Shared Nothing 架构能够通过简单堆叠机器,对数据和访问容量进行扩展,Shared Nothing 架构虽能够满足大部分用户的数据库容量需求,但本质上是小型机 + 共享存储,会碰到容量和性能天花板,且价格相对昂贵。



数据分裂方式(分片规则)

TDSQL 主流以自动水平拆分为基础,通过将 shardkey 求模,并通过代理网关(TProxy)按求模后值的特定范围分散到不同库中的分片方案。
关系型数据库是一个二维模型,数据的切分通常就需要找到一个分片字段(shardkey)以确定拆分维度,再通过定义规则来实现数据库的拆分。
几种常见的分片键选择方案如下:
基于日期顺序。例如按年拆分,2015年一个分片,2016年一个分片。
优势:简单明了,易于查找。
劣势:当期(2016年)的热数据的服务器性能可能不足,而存储冷数据性能却闲置。
基于用户 ID 求模,将求模后字段的特定范围分散到不同库中。
优势:性能相对均衡,相同用户数据在一个库中。
劣势:可能导致数据倾斜(例如设计的是商户系统,某电子商城的一个商户数据能比几千个小商户的数据还多)。
将主键(primary key)求模,将求模后字段的特定范围分散到不同库中。
优势:性能相对均衡,不容易出现数据倾斜的问题,相同主键的数据在一个库中。
劣势:数据随机分散,某些业务逻辑可能需要跨分片 join 却不能直接支持。
在多张表分片方案前,也有几种方案:
Noshard:即不分片。
tableshard:即每张表分表时,仅根据自身情况,不考虑表间关系,随意选择分表键分表。
groupshard:即几张有关联的表,按相同的分表键进行设计,这样可以将相关的数据聚合在一台物理节点。
在分片的数据源管理方面,目前也有两种思路:
客户端模式:由业务程序模块中的配置来管理多个分片的数据源,分片的读写与数据整合在业务程序内进行。
中间件代理模式:在分片数据库前端搭建一个中间件代理,后端多个分片数据库对前端应用程序透明。

TDSQL 能够帮您解决什么问题

单机数据库到达瓶颈

面对互联网类业务百万级以上的用户量,单机数据库由于硬件和软件的限制,数据库在数据存储容量、访问容量、容灾等方面都会随着业务的增长而到达瓶颈。

应用层分片开发工作量大

应用层分片将业务逻辑和数据库逻辑高度耦合,给当前业务快速迭代带来极大的开发工作量。而基于 TDSQL 透明自动拆分的方案,开发者只需要在第一次接入时修改代码,后续迭代无需过多关注数据库逻辑,可以极大减少开发工作量。

解决开源方案或 NoSQL 的难题

选择开源或 NoSQL 产品也能够解决数据库瓶颈,而且这些产品免费或者费用相对较低。但您可能需要注意开源方案或 NoSQL 的以下问题:
1. 产品 bug 修复取决于社区进度,若遭遇严重 bug 您是否可以等待。
2. 您的团队是否有熟悉并能持续维护该产品的人,且不会因为人事变动而影响项目。
3. 关联系统是否做好准备。
4. 您的业务重心是什么,投入资源来保障开源产品的资源管控和生命周期管理、分布式逻辑、高可用部署和切换、容灾备份、自助运维、疑难排查等是否是您的业务指标。

帮助和支持

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

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

文档反馈