tencent cloud

游戏数据库 TcaplusDB

产品动态
产品简介
产品概述
产品优势
应用场景
产品架构
地域介绍
购买指南
产品定价
欠费说明
快速入门
了解基本概念
创建集群
创建表格组
创建表格
获取连接信息
访问 TcaplusDB
操作指南
管理集群与表格组
管理表格
监控与告警
访问管理
标签
任务列表
使用 TcaplusDB client
使用 client 工具访问数据
client 工具命令参考
使用 TcaplusDB SDK
变更历史
SDK 下载
SDK for C++ 接口说明
TcaplusDB 错误码
SDK 安装
PB 表 C++SDK 操作方法
TDR 表 C++SDK 操作方法
使用 TcaplusDB RESTful API
RESTful API 接口说明
Go RESTful API 接口说明
Java RESTful API 接口说明
PHP RESTful API 接口说明
Python RESTful API 接口说明
RESTful API 各语言示例下载
实践教程
表结构设计
数据库交互
常见问题
信息咨询类
数据库使用类
数据库原理类
API 文档
History
Introduction
API Category
Making API Requests
Table Group APIs
Other APIs
Table APIs
Cluster APIs
Data Types
Error Codes
相关协议
服务等级协议
服务条款
词汇表
联系我们

分片(Shard)

PDF
聚焦模式
字号
最后更新时间: 2025-09-09 16:14:15
为帮助您更好地规划表结构并优化性能,本文档详细介绍了 TcaplusDB 的 Shard(分片)分配核心规则与建议。

Shard 基本概念与限制

TcaplusDB 采用分片机制实现数据的分布式存储与访问。其核心机制是将每张表的数据划分为多个 Shard,这些 Shard 分散在不同的存储节点(tcapsvr)上。数据的分布依据是通过对表的 splittablekey(未指定时默认为主键)进行 Hash 计算,然后对10000取模(即 hash(splittablekey) % 10000)来确定其所属的 ShardID。每个表最多可划分为​10000个分片(Shard)。

Shard 容量规划建议

合理的 Shard 容量规划是保障性能与稳定性的关键。
​物理上限​:单个 Shard 的数据量最大支持​256GB。超过会写入失败。
​运营建议​:为避免单 Shard 过大可能带来的性能与运维复杂度问题,建议在日常运营中,​单个 Shard 的数据量维持在30GB以内。更小的 Shard 通常能获得更优的访问性能。同时,业务可以根据访问时延现况(一般地,1KB请求的平均访问时延在10ms内),来判断对应表 Shard 个数是否需要提升。
​预分配内存​:正式环境,每个 Shard 会默认预分配​1GB的内存空间用于缓存热数据。当数据量超过此阈值时,超出部分将存储在磁盘中。

Shard 数量规划原则

  因每组存储资源的 Shard 个数有限, 因此一个表的 Shard 总数需综合数据总量和访问量、成本等因素来计算一个相对合理的值。
单表最小 Shard 数:1个。即每个表至少一个 Shard, 通常加表时默认分配的也是1个 Shard。
​计算公式参考​:您可以根据预期的总数据量和建议的单 Shard 容量(如30GB)来估算所需的 Shard 数量。例如,预计总数据量为3TB的表,理论上需要 (3 * 1024) / 30 ≈ 103个 Shard。
​访问性能考量​:​单个 Shard 能够支撑的 QPS 在万级别​(具体数值会受记录大小、请求类型等因素影响)。对于预期访问量非常大的表,建议设置更多的 Shard,从而提升整体吞吐能力。
​内存关联性​:Shard 数量也与内存规划紧密相关。一个常见的服务器配置基准是:为一台拥有​128GB物理内存的存储节点机器,默认分配约​112个 Shard。这确保了每个 Shard 能有约1GB的预分配内存空间。

总结与建议

评估维度
限制与建议
说明
​单表最大 Shard 数​
10000 个
表分片的上限。
​单 Shard 容量上限​
256GB
物理硬限制。
​单 Shard 运营建议容量​
​≤ 30GB​
为保障性能与易运维,推荐使用此标准; 但对于访问量不大的表,一般超过30GB也没有问题。
​单 Shard 预分配内存​
1GB
超出部分存于磁盘。
​Shard 数量决定因素​
​数据总量​ & ​访问量(QPS)​​
数据量定基础,访问量定分布。​高 QPS 表建议更多 Shard,更小单 Shard 尺寸。​
​单 Shard 处理能力​
约万级 QPS
具体性能因记录大小和请求类型而异。
​内存配置参考​
128GB 内存机器 ≈ 112 个 Shard
确保每个 Shard 有约1GB内存。
说明:
以上给出的数值为通用参考,实际部署时可能会因具体配置和业务场景有所不同。
总而言之,Shard 分配需要在数据量、性能、成本之间取得平衡。​通常建议您优先根据期望的单 Shard 数据量(如30GB)来初步确定 Shard 总数,然后再评估该数量下的 Shard 是否能满足您的访问性能(QPS)要求, 同时满足 Shard 数不超过您购买的总量。​​ 在不超过 Shard 总量的前提下,建议对业务的核心高频访问表分配更多的 Shard 数。

帮助和支持

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

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

文档反馈