tencent cloud

TDSQL MySQL版
高度兼容 MySQL,支持水平拆分(分表)的高性能数据库
简介

TDSQL MySQL版(TDSQL for MySQL,TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为用户提供完整的分布式数据库解决方案。目前 TDSQL 已经为超过500+的政企和金融机构提供数据库的公有云及私有云服务,客户覆盖银行、保险、证券、互联网金融、计费、第三方支付、物联网、互联网+、政务等领域。TDSQL 亦凭借其高质量的产品及服务,获得了多项国际和国家认证,得到了客户及行业的一致认可。

特性
自动水平拆分

只需在建表的时候设定 shardkey,即支持对数据库中大表自动水平拆分(分表),系统将基于 Hash 方案自动将写入数据均匀的分布到不同物理分片中,查询也自动聚合返回;分表对业务系统透明,业务实际所见为一张逻辑完整的表,无需感知后端的物理架构。

高度兼容 MySQL 语法

TDSQL 兼容大多数常用的 MySQL 语法,包括 MySQL 的语言结构、字符集和时区、数据类型、常用函数、预处理协议、排序、联合(JOIN)、索引、分区、事务、控制指令、等常用的 DDL、DML、DCL 和数据库访问接口。

领先的分布式架构

因分布式架构的特殊性,在数据库高级功能与性能之间不能两全;TDSQL 为此提供三种建表方案,提供(分布式)事务特性,提供全局唯一数字序列,支持 JSON 等能力,有效的弥补了分布式架构的不足,为开发者提供更加灵活的开发方案。

不停机弹性扩展

目前单一分片最大可支持6TB存储,如果性能或容量不足以支撑业务发展时,在控制台点击,即可自动升级完成。升级过程中,您无需关心分布式系统内的数据迁移,均衡和路由切换。升级完成后访问 IP 不变,仅在自动切换时存在秒级闪断,您仅需确保有重连机制即可。

强同步复制

TDSQL 默认采用主从架构,可确保99.95%以上可用性;系统支持强同步复制以提供数据强一致,业务系统写入数据后,只有当数据库从机同步后才给予应用事务应答,确保主从数据完全一致,不会因故障导致数据丢失、错乱,目前强同步复制性能已基本等于异步复制。

超高性能

TDSQL 深度定制开发 MySQL 内核,性能远超基于开源 MySQL;支持三种方案的读写分离,有效提供读扩展的同时提供开发灵活性;对线程池调度算法进行了优化,在重负载时表现更佳;并配置 PCI-E SSD 的硬盘,提供高于 SATA 三倍以上的 IO 配置,帮助您更轻松满足业务性能需求。

易于使用的托管部署

只需在腾讯云 TDSQL 管理控制台中单击几下,即可在几分钟内启动并连接到一个可以立即投入生产的 TDSQL 数据库。控制台提供常见的数据库运维操作,为您精细管理数据库提供便利;提供常见的系统监控数据和性能分析数据,助您迅速识别运行异常的数据库。

支持 JSON

支持原生的 JSON 类型,JSON 值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制格式,在 JSON 列插入或者更新的时候将会自动验证 JSON 文本,即您可以将 TDSQL 看做一个兼容 MySQL 协议的 NoSQL 数据库。

支持 RocksDB

RocksDB 是一种基于 LSM 树的存储引擎,其数据压缩率领先 InnoDB 引擎60%以上,通常压缩后每1000万行数据仅需1GB左右存储空间,极大节省数据库使用成本;而且 RocksDB 的写入性能也有较大提升,适合物联网、日志等“写多读少”,且对容量比较敏感的业务场景,RocksDB 目前正在公测中。

功能

高度兼容 MySQL

更高性能

高可用性

企业级安全

企业级监控

可扩展性

易用性

高度兼容 MySQL

兼容大多数常用的 MySQL 语法

包括 MySQL 的语言结构、字符集和时区、数据类型、常用函数、预处理协议、排序、联合(join)、存储过程、索引、分区、事务、预处理协议、控制指令、等常用的 DDL、DML、DCL 和数据库访问接口。


支持(分布式)事务

通过两段提交的方式支持分布式事务,支持诸如转账、出单、支付等场景;跨节点事务性能约为单节点的 70%,高于开源分布式事务 XA 约 56%。目前仅开放 MySQL 5.7支持该能力。


支持(分布式)JOIN

TDSQL 支持多个物理节点之间的 JOIN(联合查询)操作,即分布式 JOIN。如果 JOIN 相关的表有 shardkey 相等条件,由于分表的一致性原则,会让这部分数据自动存储到同一物理节点,此时相当于单机 JOIN,性能最好。如果涉及到跨物理节点数据,此时 proxy 会先从其他节点拉取数据并缓存,由于涉及到网络数据传输,性能会损失。


支持JSON

TDSQL 支持存储 JSON 格式的数据,使得对 JSON处理更加有效,同时又能提早检查错误;如果您既希望使用 JSON类型,又对数据一致性,事务,JOIN 等传统数据库具备的能力也有一定要求的话,TDSQL 将是一个很好的选择,当然 TDSQL 的 JSON 是基于 MySQL 与 Mongodb 的使用仍有一些差异,如果您感兴趣,可以阅读 TDSQL 与 MongoDB 的 JSON 能力对比。


三种建表策略

分表:即水平拆分的表,通常适用于表规模大于 2000 万行、大于 50GB,且快速增长的表;

广播表:即所有操作都将广播到所有逻辑分片(Shard)中,这意味着每个分片都有该表的全量数据,通常适用于配置表,或需要频繁 JOIN 的表,该类表数据更新相对较少,广播表可以两个表的联合查询(JOIN)、事务收敛到单节点中,以提高性能;

单表:一些无需分片的表,通常适用于数据量较小的库表;由于单表并未拆分,这意味着单表使用完全兼容 MySQL。


全局唯一数字序列

与 AUTO_INCREMENT 类似。自增长序列为用户提供一个全局唯一数字 ID 服务,实现分布式环境下唯一键、主键等数据的全局唯一性。


透传命令

支持通过注释方式(hint)将 SQL 透传到指定目标分片,以提高性能和操作灵活性。


二级分区

在分表的基础上,还支持分区表方案。即在水平拆分的表,再支持一层逻辑分区。

更高性能

读写分离(从机只读)

TDSQL 默认支持读写分离能力,主从架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上,以支撑大型应用程序的读取流量;读写分离的方案包括:只读账号,/*slave*/,只读实例三种方案。


线程池

TDSQL 默认支持线程池,腾讯对线程池的调度算法进行了优化,改进当系统处于重负载时,查询和更新请求在线程组间分布不均衡等极端情况,并且能够更好地利用计算资源,减少无谓的线程切换,减少请求在队列中的等待时间,及时处理请求。


高端硬件配置

TDSQL 基于 PCI-E SSD,提供至少高于 SATA 三倍的 IOPS 配置,强大 IO 性能保障数据库的访问能力;存储硬件采用 NvMe 协议,专门针对 PCI-E 接口的 SSD 设计,更能发挥出性能优势;单分片最大支持 245509 QPS(每秒访问次数)、384GB 内存和 6TB 存储空间。


性能并发线性增长

分布式架构的特性是随着 TDSQL 分片的增加,每个分片分别承担一部分分布式任务的处理,这样您的数据库性能等同于线性增长。


支持RocksDB

RocksDB 是新近开源的存储引擎,包括 FB 在内的大量公司都在使用 RocksDB,而 RocksDB 是一种基于LSM 树的存储引擎,其数据压缩率领先 InnoDB 引擎 60% 以上,即 InnoDB 压缩前 160GB 数据使用RocksDB 后仅需 62GB,相当于每 1000 行数据仅需1GB存储空间,极大节省数据库使用成本;另外 RocksDB 的写入性能也有较大提升,高并发情况下约为 InnoDB 的 5 倍以上。因此,RocksDB 特别适合物联网、日志等“写多读少”,且对容量比较敏感的业务。

高可用性

分布式高可用

分布式系统架构本身就具有极高的可用性,即单一节点故障,并不影响集群整体可用性。而 TDSQL 在分布式架构的基础上,对每个分片都配置主从冗余,确保业务持续高可用。


三种数据复制方式

TDSQL 支持强同步(不可蜕化)、强同步(可蜕化)、异步复制三种方式。基于腾讯自研异步多线程强同步复制技术技术,极大提高了数据强同步复制性能。在强同步性能基本等同于异步的基础上,确保主从节点的数据强一致性。


透明故障转移

每一个分片和底层物理设备提供 7X24 小时持续监控。发生故障时,网关集群(TProxy)将及时从故障节点切换到正常节点。在主从切换时,VIP不变,这意味应用层无需做任何改动即可完成热备切换,业务对容灾切换无感知。


节点故障自动恢复

承载分片的物理节点故障,调度系统自动重试恢复节点,如果原节点无法恢复,将在 30 分钟内自动申请新资源,并通过备份重建(Rebuild)节点,并将节点自动加入集群,已确保分片长期来看保持主从容易。


支持跨可用区部署

主机和从机可分处于同城不同可用区,通过腾讯专线网络进行实时的数据复制。本地为主机,远程为从机,外部访问该数据时,首先访问本地的实例,若本地实例发生故障或访问不可达,则访问远程从机。跨可用区部署特性为 TDSQL 提供了多可用区容灾的能力,主机和从机切换过程对用户透明,避免了单 IDC 部署的运营风险。


金融级两地三中心方案

TDSQL 可提供同城双中心、两地三中心的部署架构。故障发生时,您可以在几分钟内将数据库恢复正常运行。

企业级安全

符合国家/国际/行业相关标准

TDSQL 现已代表腾讯云云数据库通过多项国家或国际认证,包括但不限于:ISO22301 认证、ISO27001 认证、ISO20000 认证、ISO9001 认证、可信云服务认证、信息安全等级保护(三级或以上)、CSA STAR 认证。

TDSQL 部分功能设计标准也参考 GBT 20273-2006 信息安全技术 数据库管理系统安全技术要求、JRT 0072-2012 金融行业信息系统信息安全等级保护测评指南;即使您的业务对数据库安全较为敏感,也可以完全放心的使用 TDSQL。


数据库内核级安全

针对诸如 SQL 注入、目录穿越攻击(Path Traversal)、非法提权、系统表覆盖攻击、插件引入等安全隐患,TDSQL 做了大量的安全优化,并在数据库集群内部提供内置数据库防火墙,从运维和使用角度都能帮助您的业务提高安全标准。


支持私有网络

TDSQL 允许您在私有网络(VPC)中运行数据库实例,这使您可以隔离数据库实例并通过行业标准加密的 IPsec VPN 或专线连接到您现有的数据中心。


数据库防火墙与多重安全防护

云数据库默认为每个数据库提供多重安全防护,在提供了外网访问功能的数据库实例遭到 DDoS 攻击时,帮助用户抵御各种攻击流量,保证业务正常运行。高效防御 SQL 注入、暴力破解等数据库攻击行为,极大减少用户因数据库攻击带来的业务中断和损失。


细粒度的权限控制

默认屏蔽超级管理员 root 账号,避免安全隐患;提供精确到表、函数、存储过程等对象级别的权限控制,让您分配的账号只能访问被授权的资源,并将风险控制在可预期范围内。


支持物理独享方案

在公有云支持以独享物理集群(设备)全部资源部署数据库,这意味着您专享独立的物理设备,不与其他租户共用。独享集群满足您对资源独享、物理安全、行业监管等需求;购买独享集群后,通过腾讯云控制台,灵活创建多种自定义规格的数据库实例。


存储高可靠

提供在线的主从两份数据存储,确保线上数据安全。每日自动备份数据,云数据库可根据备份文件提供 3 天内的任意时间点回档。同时每天的冷备数据都会存储多份,以便于在灾难情况下进行数据恢复。您可以放心的将数据存储在 TDSQL 上,无需考虑数据丢失的问题。

企业级监控

全面的日常监控

日常监控支持 60 秒粒度,覆盖连接访问、数据库负载、查询缓存、存储引擎等七十余项重要指标,可全方位监控数据库运行状况。十五项数据库核心性能指标支持秒级的实时监控,可帮助您及时掌握实例运行状况,快速定位实例性能问题。自定义资源阈值告警,可帮助用户知晓 DB 运行中的问题。它将问题及时反馈给运维人员,帮助您快速响应数据库问题。提供慢查询分析报告和 SQL 完整运行报告下载,帮助您了解影响数据库性能的因素。


自定义告警

自定义资源阈值告警,可帮助用户知晓 DB 运行中的问题。它将问题及时反馈给运维人员,帮助您快速响应数据库问题。


性能分析日志

提供慢查询分析报告和 SQL 完整运行报告下载,帮助您了解影响数据库性能的因素。

可扩展性

弹性扩展

目前单一分片最大可支持 6TB 存储,如果性能或容量不足以支撑业务发展时,在控制台点击,即可自动升级完成。升级过程中,您无需关心分布式系统内的数据迁移,均衡和路由切换。升级完成后访问 IP 不变,仅在自动切换时存在秒级闪断,您仅需确保有重连机制即可。


自动再均衡(Rebalance)

增加分片或升级分片规格时,数据自动迁移,保证每个节点数据实现均衡分布;迁移过程服务不会停止,只会有几个分配存在秒级的只读。以提高大型业务维护效率,减少运营风险事件发生。

易用性

轻松管理海量数据库

提供命令行和 Web 两种方式管理分布式数据库,两种管理方式将海量数据库实例的运维工作简化为在页面点击即可完成,极大地降低了运维工作量。


多种网络接入方式

支持 VPC 网络和基础网络,还可配置数据库外网访问。通过这些接入方式,您可从腾讯云、IDC、私有云或其他云厂商处访问云数据库,从而满足多种环境下的数据库访问需求。


支持 API

提供完善的 API 体系,您可使用 API 轻松地将云数据库与内部监控、运营系统相结合,实现贴近业务需求、完全自动化的业务运维体系。 查看 API 说明。

功能

兼容大多数常用的 MySQL 语法

包括 MySQL 的语言结构、字符集和时区、数据类型、常用函数、预处理协议、排序、联合(join)、存储过程、索引、分区、事务、预处理协议、控制指令、等常用的 DDL、DML、DCL 和数据库访问接口。


支持(分布式)事务

通过两段提交的方式支持分布式事务,支持诸如转账、出单、支付等场景;跨节点事务性能约为单节点的 70%,高于开源分布式事务 XA 约 56%。目前仅开放 MySQL 5.7支持该能力。


支持(分布式)JOIN

TDSQL 支持多个物理节点之间的 JOIN(联合查询)操作,即分布式 JOIN。如果 JOIN 相关的表有 shardkey 相等条件,由于分表的一致性原则,会让这部分数据自动存储到同一物理节点,此时相当于单机 JOIN,性能最好。如果涉及到跨物理节点数据,此时 proxy 会先从其他节点拉取数据并缓存,由于涉及到网络数据传输,性能会损失。


支持JSON

TDSQL 支持存储 JSON 格式的数据,使得对 JSON处理更加有效,同时又能提早检查错误;如果您既希望使用 JSON类型,又对数据一致性,事务,JOIN 等传统数据库具备的能力也有一定要求的话,TDSQL 将是一个很好的选择,当然 TDSQL 的 JSON 是基于 MySQL 与 Mongodb 的使用仍有一些差异,如果您感兴趣,可以阅读 TDSQL 与 MongoDB 的 JSON 能力对比。


三种建表策略

分表:即水平拆分的表,通常适用于表规模大于 2000 万行、大于 50GB,且快速增长的表;

广播表:即所有操作都将广播到所有逻辑分片(Shard)中,这意味着每个分片都有该表的全量数据,通常适用于配置表,或需要频繁 JOIN 的表,该类表数据更新相对较少,广播表可以两个表的联合查询(JOIN)、事务收敛到单节点中,以提高性能;

单表:一些无需分片的表,通常适用于数据量较小的库表;由于单表并未拆分,这意味着单表使用完全兼容 MySQL。


全局唯一数字序列

与 AUTO_INCREMENT 类似。自增长序列为用户提供一个全局唯一数字 ID 服务,实现分布式环境下唯一键、主键等数据的全局唯一性。


透传命令

支持通过注释方式(hint)将 SQL 透传到指定目标分片,以提高性能和操作灵活性。


二级分区

在分表的基础上,还支持分区表方案。即在水平拆分的表,再支持一层逻辑分区。

读写分离(从机只读)

TDSQL 默认支持读写分离能力,主从架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上,以支撑大型应用程序的读取流量;读写分离的方案包括:只读账号,/*slave*/,只读实例三种方案。


线程池

TDSQL 默认支持线程池,腾讯对线程池的调度算法进行了优化,改进当系统处于重负载时,查询和更新请求在线程组间分布不均衡等极端情况,并且能够更好地利用计算资源,减少无谓的线程切换,减少请求在队列中的等待时间,及时处理请求。


高端硬件配置

TDSQL 基于 PCI-E SSD,提供至少高于 SATA 三倍的 IOPS 配置,强大 IO 性能保障数据库的访问能力;存储硬件采用 NvMe 协议,专门针对 PCI-E 接口的 SSD 设计,更能发挥出性能优势;单分片最大支持 245509 QPS(每秒访问次数)、384GB 内存和 6TB 存储空间。


性能并发线性增长

分布式架构的特性是随着 TDSQL 分片的增加,每个分片分别承担一部分分布式任务的处理,这样您的数据库性能等同于线性增长。


支持RocksDB

RocksDB 是新近开源的存储引擎,包括 FB 在内的大量公司都在使用 RocksDB,而 RocksDB 是一种基于LSM 树的存储引擎,其数据压缩率领先 InnoDB 引擎 60% 以上,即 InnoDB 压缩前 160GB 数据使用RocksDB 后仅需 62GB,相当于每 1000 行数据仅需1GB存储空间,极大节省数据库使用成本;另外 RocksDB 的写入性能也有较大提升,高并发情况下约为 InnoDB 的 5 倍以上。因此,RocksDB 特别适合物联网、日志等“写多读少”,且对容量比较敏感的业务。

分布式高可用

分布式系统架构本身就具有极高的可用性,即单一节点故障,并不影响集群整体可用性。而 TDSQL 在分布式架构的基础上,对每个分片都配置主从冗余,确保业务持续高可用。


三种数据复制方式

TDSQL 支持强同步(不可蜕化)、强同步(可蜕化)、异步复制三种方式。基于腾讯自研异步多线程强同步复制技术技术,极大提高了数据强同步复制性能。在强同步性能基本等同于异步的基础上,确保主从节点的数据强一致性。


透明故障转移

每一个分片和底层物理设备提供 7X24 小时持续监控。发生故障时,网关集群(TProxy)将及时从故障节点切换到正常节点。在主从切换时,VIP不变,这意味应用层无需做任何改动即可完成热备切换,业务对容灾切换无感知。


节点故障自动恢复

承载分片的物理节点故障,调度系统自动重试恢复节点,如果原节点无法恢复,将在 30 分钟内自动申请新资源,并通过备份重建(Rebuild)节点,并将节点自动加入集群,已确保分片长期来看保持主从容易。


支持跨可用区部署

主机和从机可分处于同城不同可用区,通过腾讯专线网络进行实时的数据复制。本地为主机,远程为从机,外部访问该数据时,首先访问本地的实例,若本地实例发生故障或访问不可达,则访问远程从机。跨可用区部署特性为 TDSQL 提供了多可用区容灾的能力,主机和从机切换过程对用户透明,避免了单 IDC 部署的运营风险。


金融级两地三中心方案

TDSQL 可提供同城双中心、两地三中心的部署架构。故障发生时,您可以在几分钟内将数据库恢复正常运行。

符合国家/国际/行业相关标准

TDSQL 现已代表腾讯云云数据库通过多项国家或国际认证,包括但不限于:ISO22301 认证、ISO27001 认证、ISO20000 认证、ISO9001 认证、可信云服务认证、信息安全等级保护(三级或以上)、CSA STAR 认证。

TDSQL 部分功能设计标准也参考 GBT 20273-2006 信息安全技术 数据库管理系统安全技术要求、JRT 0072-2012 金融行业信息系统信息安全等级保护测评指南;即使您的业务对数据库安全较为敏感,也可以完全放心的使用 TDSQL。


数据库内核级安全

针对诸如 SQL 注入、目录穿越攻击(Path Traversal)、非法提权、系统表覆盖攻击、插件引入等安全隐患,TDSQL 做了大量的安全优化,并在数据库集群内部提供内置数据库防火墙,从运维和使用角度都能帮助您的业务提高安全标准。


支持私有网络

TDSQL 允许您在私有网络(VPC)中运行数据库实例,这使您可以隔离数据库实例并通过行业标准加密的 IPsec VPN 或专线连接到您现有的数据中心。


数据库防火墙与多重安全防护

云数据库默认为每个数据库提供多重安全防护,在提供了外网访问功能的数据库实例遭到 DDoS 攻击时,帮助用户抵御各种攻击流量,保证业务正常运行。高效防御 SQL 注入、暴力破解等数据库攻击行为,极大减少用户因数据库攻击带来的业务中断和损失。


细粒度的权限控制

默认屏蔽超级管理员 root 账号,避免安全隐患;提供精确到表、函数、存储过程等对象级别的权限控制,让您分配的账号只能访问被授权的资源,并将风险控制在可预期范围内。


支持物理独享方案

在公有云支持以独享物理集群(设备)全部资源部署数据库,这意味着您专享独立的物理设备,不与其他租户共用。独享集群满足您对资源独享、物理安全、行业监管等需求;购买独享集群后,通过腾讯云控制台,灵活创建多种自定义规格的数据库实例。


存储高可靠

提供在线的主从两份数据存储,确保线上数据安全。每日自动备份数据,云数据库可根据备份文件提供 3 天内的任意时间点回档。同时每天的冷备数据都会存储多份,以便于在灾难情况下进行数据恢复。您可以放心的将数据存储在 TDSQL 上,无需考虑数据丢失的问题。

全面的日常监控

日常监控支持 60 秒粒度,覆盖连接访问、数据库负载、查询缓存、存储引擎等七十余项重要指标,可全方位监控数据库运行状况。十五项数据库核心性能指标支持秒级的实时监控,可帮助您及时掌握实例运行状况,快速定位实例性能问题。自定义资源阈值告警,可帮助用户知晓 DB 运行中的问题。它将问题及时反馈给运维人员,帮助您快速响应数据库问题。提供慢查询分析报告和 SQL 完整运行报告下载,帮助您了解影响数据库性能的因素。


自定义告警

自定义资源阈值告警,可帮助用户知晓 DB 运行中的问题。它将问题及时反馈给运维人员,帮助您快速响应数据库问题。


性能分析日志

提供慢查询分析报告和 SQL 完整运行报告下载,帮助您了解影响数据库性能的因素。

弹性扩展

目前单一分片最大可支持 6TB 存储,如果性能或容量不足以支撑业务发展时,在控制台点击,即可自动升级完成。升级过程中,您无需关心分布式系统内的数据迁移,均衡和路由切换。升级完成后访问 IP 不变,仅在自动切换时存在秒级闪断,您仅需确保有重连机制即可。


自动再均衡(Rebalance)

增加分片或升级分片规格时,数据自动迁移,保证每个节点数据实现均衡分布;迁移过程服务不会停止,只会有几个分配存在秒级的只读。以提高大型业务维护效率,减少运营风险事件发生。

轻松管理海量数据库

提供命令行和 Web 两种方式管理分布式数据库,两种管理方式将海量数据库实例的运维工作简化为在页面点击即可完成,极大地降低了运维工作量。


多种网络接入方式

支持 VPC 网络和基础网络,还可配置数据库外网访问。通过这些接入方式,您可从腾讯云、IDC、私有云或其他云厂商处访问云数据库,从而满足多种环境下的数据库访问需求。


支持 API

提供完善的 API 体系,您可使用 API 轻松地将云数据库与内部监控、运营系统相结合,实现贴近业务需求、完全自动化的业务运维体系。 查看 API 说明。

定价

分布式数据库 TDSQL 提供包年包月和按量计费两种计费模式:包年包月是预付费模式,用户在购买云数据库 TDSQL 时,根据自身业务需要,预先支付一个月或者多个月/年的费用。按量计费是后付费模式,适合业务量有瞬间大幅波动的场景。费用按实际使用量计算,无需提前支付费用。

如需了解更详细的计费信息,请参考计费文档