分布式数据库(Tencent Distributed SQL,TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为用户提供完整的分布式数据库解决方案。目前 TDSQL 已经为超过500+的政企和金融机构提供数据库的公有云及私有云服务,客户覆盖银行、保险、证券、互联网金融、计费、第三方支付、物联网、互联网+、政务等领域。TDSQL 亦凭借其高质量的产品及服务,获得了多项国际和国家认证,得到了客户及行业的一致认可。
功能
腾讯云 TDSQL 是基于分布式架构的数据库,高度兼容 MySQL、高性能、高可用、企业级安全与监控、可扩展、易用性为一体的数据库托管服务。
高度兼容 MySQL
- 兼容大多数常用的 MySQL 语法包括 MySQL 的语言结构、字符集和时区、数据类型、常用函数、预处理协议、排序、联合(join)、存储过程、索引、分区、事务、预处理协议、控制指令、等常用的 DDL、DML、DCL 和数据库访问接口。
- 支持(分布式)事务通过两段提交的方式支持分布式事务,支持诸如转账、出单、支付等场景;跨节点事务性能约为单节点的 70%,高于开源分布式事务 XA 约 56%。目前仅开放 MySQL 5.7支持该能力。
- 支持(分布式)JOINTDSQL 支持多个物理节点之间的 JOIN(联合查询)操作,即分布式 JOIN。如果 JOIN 相关的表有 shardkey 相等条件,由于分表的一致性原则,会让这部分数据自动存储到同一物理节点,此时相当于单机 JOIN,性能**。如果涉及到跨物理节点数据,此时 proxy 会先从其他节点拉取数据并缓存,由于涉及到网络数据传输,性能会损失。
- 支持JSonTDSQL 支持存储 JSON 格式的数据,使得对 JSON处理更加有效,同时又能提早检查错误;如果您既希望使用 JSON类型,又对数据一致性,事务,JOIN 等传统数据库具备的能力也有一定要求的话,TDSQL 将是一个很好的选择,当然 TDSQL 的 JSON 是基于 MySQL 与 Mongodb 的使用仍有一些差异,如果您感兴趣,可以阅读 TDSQL 与 MongoDB 的 JSON 能力对比。
- 三种建表策略分表:即水平拆分的表,通常适用于表规模大于 2000 万行、大于 50GB,且快速增长的表;广播表:即所有操作都将广播到所有逻辑分片(Shard)中,这意味着每个分片都有该表的全量数据,通常适用于配置表,或需要频繁 JOIN 的表,该类表数据更新相对较少,广播表可以两个表的联合查询(JOIN)、事务收敛到单节点中,以提高性能;单表:一些无需分片的表,通常适用于数据量较小的库表;由于单表并未拆分,这意味着单表使用完全兼容 MySQL。
- 全局**数字序列与 AUTO_INCREMENT 类似。自增长序列为用户提供一个全局**数字 ID 服务,实现分布式环境下**键、主键等数据的全局**性。
- 透传命令支持通过注释方式(hint)将 SQL 透传到指定目标分片,以提高性能和操作灵活性。
- 二级分区在分表的基础上,还支持分区表方案。即在水平拆分的表,再支持一层逻辑分区,因此叫做二级分区;二级分区可以均衡数据分布和访问,可以提高查询效率,也支持诸如游戏历史战绩、IoT 传感器数据,需要定期删除历史数据等场景。
更高性能
- 读写分离(从机只读)TDSQL 默认支持读写分离能力,主从架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上,以支撑大型应用程序的读取流量;读写分离的方案包括:只读账号,,只读实例三种方案。
- 线程池TDSQL 默认支持线程池,腾讯对线程池的调度算法进行了优化,改进当系统处于重负载时,查询和更新请求在线程组间分布不均衡等极端情况,并且能够更好地利用计算资源,减少无谓的线程切换,减少请求在队列中的等待时间,及时处理请求。
- 高端硬件配置TDSQL 基于 PCI-E SSD,提供至少高于 SATA 三倍的 IOPS 配置,强大 IO 性能保障数据库的访问能力;存储硬件采用 NvMe 协议,专门针对 PCI-E 接口的 SSD 设计,更能发挥出性能优势;单分片**支持 245509 QPS(每秒访问次数)、384GB 内存和 6TB 存储空间。
- 性能并发线性增长分布式架构的特性是随着 TDSQL 分片的增加,每个分片分别承担一部分分布式任务的处理,这样您的数据库性能等同于线性增长。
- 支持RocksDBRocksDB 是新近开源的存储引擎,包括 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 认证、*** 认证、可信云服务认证、信息安全等级保护(三级或以上)、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 说明。