腾讯云国际版 TcaplusDB 宽表数据库实战:游戏 NoSQL 的 RCU/WCU 计费、8 地域真实单价与冷热分层架构全解析

📅 · 腾讯云国际版实战教程 - ChengziCloud

一句话结论

Meta Description: 腾讯云国际版 TcaplusDB(游戏宽表 NoSQL)深度实战:三层架构、集群/表格组/表数据模型、GENERIC 与 LIST 双表型、RCU/WCU 峰值计费口径、标准集群版与独享集群版 8 地域官方 USD 单价表、官方算例复现与三档成本测算,另附八步建表…

本文要点
  • TcaplusDB 是什么?它在腾讯云数据库家族里的位置
  • 架构与数据模型:三层架构、集群 / 表格组 / 表、GENERIC 与 LIST 双表型
  • 计费总规则:后付费、T+1 结算、按「日峰值」计价
  • 标准集群版官方单价:8 地域真实 USD 报价
  • 独享集群版官方单价:按「接入层 + 存储层」计费
  • 三档成本测算:从休闲小游戏到社交应用
  • 八步实操:从购买集群到读写第一行数据
  • 硬边界与避坑清单

Meta Description: 腾讯云国际版 TcaplusDB(游戏宽表 NoSQL)深度实战:三层架构、集群/表格组/表数据模型、GENERIC 与 LIST 双表型、RCU/WCU 峰值计费口径、标准集群版与独享集群版 8 地域官方 USD 单价表、官方算例复现与三档成本测算,另附八步建表实操与硬边界避坑清单。

关键词:腾讯云国际版 TcaplusDB、宽表数据库、NoSQL 游戏数据库、RCU、WCU、峰值计费、冷热数据分层、标准集群版、独享集群版

声明:本文价格数据采集于 2026 年 10 月,均来自腾讯云国际站官方文档,仅供参考,价格可能变动,请以腾讯云官网为准。

一句话结论:TcaplusDB 是腾讯云国际站数据库家族里专门为游戏与海量宽表场景设计的那一条腿——它用「内存 + SSD 冷热分层 + 一致性哈希分片」做到了单服务器 10 万 QPS、延迟低于 10ms,又用「按天峰值后付费(RCU/WCU/容量三费叠加)」把成本压到纯内存方案的约 30%;它的官方单价是按地域分档的(香港/日本最便宜,新加坡/首尔最贵,同一套负载在两个地域之间能差出 50% 以上),而且标准集群版哪怕一张表都不建、也要按最小规格付费。本文按「家族定位 → 架构与数据模型 → 计费总规则 → 标准版单价 → 独享版单价 → 成本测算 → 八步实操 → 硬边界避坑 → FAQ」的顺序讲透。

如果你之前看过本站的《腾讯云国际版 MongoDB 文档数据库实战》《CTSDB 时序数据库实战》《TDSQL 分布式数据库实战》,会发现那几篇分别补齐了「文档型」「时序型」「分布式关系型」三条腿。TcaplusDB 补的是最后、也是最特殊的一条——游戏宽表 NoSQL。它既不像 MongoDB 那样面向通用文档,也不像 Redis 那样纯内存,而是把两者做了折中:热数据放内存、冷数据落 SSD,用 LRU 自动换页。第一节先把这条边界划清。

一、TcaplusDB 是什么?它在腾讯云数据库家族里的位置

按官方定位,TencentDB for TcaplusDB 是为游戏数据存储打造的分布式 NoSQL 数据库,基于非关系型数据库的设计理念构建,支持 Protobuf API 访问,把「缓存」与「磁盘」结合,兼顾性能与成本,支撑全区全服(all-server/all-region)与分区分服(multi-server/multi-region)两类游戏架构。官方文档明确提到它已在《王者荣耀》《穿越火线》《火影忍者》等数百款游戏中使用。

把站内已经写过的数据库篇目摊开看,腾讯云国际站的数据库家族是这样分工的:

数据形态代表产品典型场景站内篇目
关系型(OLTP)TencentDB for MySQL交易、订单、后台管理《MySQL + Redis 实战》
分布式关系型TDSQL金融级强一致、大表分库分表2026-09-18 TDSQL 实战
文档型MongoDB内容、用户画像、半结构化2026-09-30 MongoDB 实战
时序型CTSDBIoT、监控、指标2026-10-01 CTSDB 实战
缓存 / 键值Redis会话、榜单、计数器《MySQL + Redis 实战》
宽表 NoSQL(游戏)TcaplusDB游戏角色数据、背包、邮件、榜单本篇

它和站内几条「看起来像」的路线,边界其实非常清楚:

  • 和 Redis 的边界:Redis 是纯内存,容量受内存成本硬约束;TcaplusDB 是内存 + SSD 分层,官方口径是相对纯内存存储省约 70% 成本、相对「Redis + MySQL」组合省约 40% 成本。当数据量从「几 GB 会话」涨到「几十 TB 角色存档」时,分界线就到了。
  • 和 MongoDB 的边界:MongoDB 是通用文档数据库,查询灵活、索引丰富,适合内容型业务;TcaplusDB 是键值 / key-object / LIST 三类结构的窄接口数据库,胜在超低延迟与超高并发(单服务器 10 万 QPS),代价是不支持多表事务、不支持批量写(下文第八节详述)。
  • 和 TDSQL 的边界:TDSQL 是强一致分布式关系型,有 SQL、有事务;TcaplusDB 是 NoSQL,锁粒度是日志级,走的是最终一致 + 主从热备路线。

一句话记忆:TcaplusDB 是「游戏数据」这把钥匙对应的锁——单表可以大到 50TB 级、单服务器扛 10 万 QPS,但你必须接受 NoSQL 的接口约束(无多表事务、无批量写、主键设计决定一切)。

二、架构与数据模型:三层架构、集群 / 表格组 / 表、GENERIC 与 LIST 双表型

2.1 三层架构:管理层、接入层、存储层

TcaplusDB 是全托管分布式 NoSQL 服务,整体分为三层,接入层与存储层都由多个节点组成、支持横向扩缩容:

层次角色对应进程职责
管理层元数据与调度—存储元数据与管理信息、调度系统、管理数据
接入层请求入口tcaproxy处理用户请求、与存储层交互、取数返回
存储层数据核心tcapsvr存储用户数据、响应接入层请求、返回数据

这里有两个非常重要的容灾设计点,直接决定你能不能「放心把核心存档放进去」:

  • 接入层(tcaproxy)是对等设计:单个游戏分区下的所有 tcaproxy 节点都持有该分区全部表的路由信息。任意一个 tcaproxy 挂掉,只要其余节点不过载,游戏服务器把它踢出哈希环即可,不存在单点故障。游戏服务器本地维护一个一致性哈希环,按请求主键算哈希后选 tcaproxy(batchget 则随机选一个)。
  • 存储层(tcapsvr)是主从热备:主备 tcapsvr 实时同步,且部署在同城不同 IDC,主从同步延迟 小于 10ms。备节点异常不影响服务(DBA 重建备节点);主节点异常时由备节点接管失败恢复。两层都做了进程级过载保护,避免高峰期服务雪崩。

2.2 逻辑结构:集群 → 表格组 → 表

TcaplusDB 的逻辑结构是三层嵌套:集群(Cluster)→ 表格组(Table Group)→ 表(Table)。开发者在控制台上要先买集群、再在集群下建表格组、最后在表格组下建表。

两条容易踩的硬限制:

  • 一个表格组最多 256 张表。超过就要新建表格组、或合并表(若确有技术需求,可提工单)。
  • 分片规则写死为 hash(shardkey) % 10000。每张表都要定义一个 shardkey;若不定义 shardkey,则默认用主键。这意味着 shardkey 的离散度直接决定负载均衡效果——官方文档反复强调「主键与 shardkey 必须高度离散」,原因就在这里。

2.3 双表型:GENERIC 与 LIST

TcaplusDB 只有两种表类型,选型时不要选错:

表型数据结构键 / 值数量上限典型场景
GENERIC(通用表)key-value / key-object键 ≤ 4 个,值 ≤ 128 个角色存档、单条记录读写
LIST(列表表)1:N 列表键 ≤ 3 个,值 ≤ 127 个邮件、战报、最近 N 条记录

尺寸硬限制(来自官方 FAQ):单个键字段 ≤ 1024 B、单个值字段 ≤ 256 KB、单条记录 ≤ 1 MB。

LIST 表是 TcaplusDB 的「杀手锏」,但有两个使用前提必须记住:

  • N < 1024 时优先用 LIST 表——比如「玩家最近 100 封邮件」「最近 100 场战报」。它支持队头插入队尾删除(或反过来)、以及按插入时间排序的 TopN。
  • 元素个数只能改大、不能改小,因为要兼容旧数据;listreplace / listdelete / listbatchdelete 必须传入正确的索引;listaddafter 在列表满时必须指定淘汰规则(推荐「头部加一条、尾部删一条」或反之)。

此外还有几个经常用到的数据结构能力:list array、按部分键查询(索引)、key-value、key-object(单键的值可以是任意结构,例如把 Lua table 序列化后塞进 value 字段)。

三、计费总规则:后付费、T+1 结算、按「日峰值」计价

在看具体单价前,先把三条总规则立住——它们对账单的影响比任何单个数字都大。

规则一:全部按量后付费,当天费用次日结算

TcaplusDB 的两种集群版本都只支持按量计费(Pay-as-You-Go),不提供包年包月。计费周期是天:当天产生的费用在第二天出账。

规则二:标准集群版按「一天内的峰值」计费

标准集群版适合测试、审核、开发环境。它的日费用由三笔费用叠加:


日费用 = 当天峰值磁盘容量费用 + 当天峰值 RCU 费用 + 当天峰值 WCU 费用

关键在「峰值」两个字:它是按当天访问量的最高点来算的,而不是平均值。官方给的统计口径很具体——读请求在某个瞬间达到全天最高,就按那个瞬间的 RCU 计费;写请求在另一个瞬间达到最高,就按那个瞬间的 WCU 计费。两者不在同一时刻也各算各的。这意味着任何一次流量尖刺都会被完整计入当天账单,这正是它「适合测试环境、不适合长期跑生产」的原因之一。

规则三:CU 是「4 KB 一次单行读写 / 秒」,且按请求与响应中较大者累计

这是最容易被算错的地方:

  • 1 RCU = 每秒 1 次「4 KB 单行读」;
  • 1 WCU = 每秒 1 次「4 KB 单行写」;
  • 不足 4 KB 向上取整到 4 KB,超过 4 KB 按 4 KB 的倍数计算;
  • CU 按「请求」与「响应」中较大的那个累计。

官方举的例子:一秒内请求 1 KB、响应 9 KB,因为响应更大,就按响应算——9 KB ≈ 两个 4 KB + 剩 1 KB 再算一个 4 KB,总计 3 CU。所以「只读需要的字段」不只是省带宽,而是直接省钱(下文第八节的实操最佳实践里会反复回到这一点)。

规则四:标准集群版有「最小消费」,空表也收费

官方明确写明:集群一经创建即产生费用。标准集群版的最小日消费规格是 1 GB 磁盘 + 80 RCU + 26 WCU,即使一张表都没建也照收。这就是很多人「建了集群忘了删、月底发现一直在扣费」的根源。

四、标准集群版官方单价:8 地域真实 USD 报价

下面是腾讯云国际站官方文档给出的标准集群版按地域分档单价(单位:容量 USD/GB/天,RCU USD/CU/天,WCU USD/CU/天):

地域容量(USD/GB/天)RCU(USD/CU/天)WCU(USD/CU/天)
中国大陆0.00520.00190.0048
硅谷(美西)0.0062890.0020.0055
弗吉尼亚(美东)0.0062890.0020.0055
法兰克福(德国)0.0060.00220.0057
新加坡0.00610.00250.0061
香港(中国)0.00550.00190.0055
日本0.00550.00190.0055
首尔0.0062890.0025460.00599

从这张表能读出三个非常有用的结论:

  1. 读比写便宜,而且便宜得明显。同一地域下 WCU 单价普遍是 RCU 的 2.4~2.9 倍。这符合游戏负载特征——读多写少,所以官方把读侧定价得更低,鼓励你把负载往读侧倾斜。
  2. 地域差价很大。同样 1 个 RCU,香港/日本(0.0019)比新加坡(0.0025)便宜约 24%,比首尔(0.002546)便宜约 25%。写侧差距更大:香港 0.0055 对新加坡 0.0061,差约 11%;而首尔 RCU 是全表最贵的(0.002546)。
  3. 中国大陆档最便宜,但它不是国际站的主场。中国大陆档 0.0052 / 0.0019 / 0.0048 三项全表最低,但国际站用户通常选不到该档——国际站可用的地域是香港、新加坡、首尔、东京、硅谷、弗吉尼亚、法兰克福这 7 个(外加中国大陆的上海、香港共 8 个地域清单,其中中国大陆档对应上海)。

复现官方算例,顺便验证公式

官方给了两个标准集群版算例,我们逐个复现(用上海/中国大陆单价):

  • 算例一(最小规格):峰值读 80 RCU/s、峰值写 26 WCU/s、峰值容量 0.5 GB(计费向上取最小 1 GB)。

1 × 0.0052 + 80 × 0.0019 + 26 × 0.0048 = 0.0052 + 0.152 + 0.1248 = 0.282 USD/天 与官方给出的 0.282 USD/天 完全一致。

  • 算例二(活动高峰):峰值读 1000 RCU/s、峰值写 300 WCU/s、峰值容量 1.5 GB。

1.5 × 0.0052 + 1000 × 0.0019 + 300 × 0.0048 = 0.0078 + 1.9 + 1.44 = 3.3478 USD/天 与官方给出的 3.3478 USD/天 完全一致。

公式与单价互相验证通过,可以放心用来做自己的测算。

标准集群版的「地板价」

按最小规格(1 GB + 80 RCU + 26 WCU)算,各国际站地域的空转地板价是:

地域最小日消费(USD/天)折合月费(×30)
香港(中国)0.3005≈ 9.02 USD
日本0.3005≈ 9.02 USD
硅谷(美西)0.309289≈ 9.28 USD
法兰克福0.3302≈ 9.91 USD
新加坡0.3647≈ 10.94 USD
首尔0.3885≈ 11.65 USD
中国大陆(上海)0.282≈ 8.46 USD

也就是说,一个什么都不干的 TcaplusDB 集群,每月也要花大约 9~12 USD。这不算贵,但「建了不删」一个月就是十几美元,批量测试时很容易累积。

五、独享集群版官方单价:按「接入层 + 存储层」计费

当标准集群版撞到 10 万 QPS 上限时,官方建议改用独享集群版。它的计费逻辑完全不同——不看请求量,看资源层数:


日费用 = 接入层单价 × 接入层数量 + 存储层单价 × 存储层数量

其中存储层单价按实例类型分档,官方示例给的是「一主一备 T1 标准型」的日单价。下面是官方文档给出的独享集群版地域单价:

地域接入层(USD/层/天)存储层 T1 一主一备(USD/实例/天)
中国大陆0.5165.22
弗吉尼亚(美东)1.52220.58
硅谷(美西)1.57224.49
法兰克福(德国)1.57224.49
新加坡1.89224.49
香港(中国)1.89226.38
日本1.76226.38
首尔1.76222.03

一个必须指出的官方口径冲突:文档给出的独享集群版算例(上海地域、4 个接入层、2 个存储层)是这样算的——

4 × 0.5 + 2 × 64.28471429 = 2 + 128.56942858 = 130.56942858 USD/天

但表格里中国大陆档的单价明明是 0.51 和 65.22,算例却用了 0.5 和 64.28471429。两组数字对不上。遇到这种情况的正确做法是:以表格单价为准做预算,用算例仅理解公式结构,并在正式采购前找官方确认。按表格价格重算同一规格是 4 × 0.51 + 2 × 65.22 = 4.08 + 130.44 = 134.52 USD/天,比算例高约 3%。

另外注意两个量级感受:

  • 独享集群版的存储层极贵——单实例日价 65(中国大陆)到 226(香港)美元,折合月费 2000~6800 美元。这是「专用物理资源」的代价。
  • 所以选型逻辑很清楚:标准集群版覆盖 10 万 QPS 以内的绝大多数游戏场景;只有确实需要更高、更稳定的性能上限,才上独享版。不要为了「看起来更专业」而默认选独享版。

六、三档成本测算:从休闲小游戏到社交应用

把上面的单价落到三个真实场景,看看账单长什么样。以下测算均假设按标准集群版、后付费、香港或新加坡地域,月费按 30 天折算。

场景 A:休闲小游戏(日活几万)

假设峰值读 500 RCU/s、峰值写 200 WCU/s、峰值容量 20 GB。

地域日费用(USD)月费用(USD)
香港(中国)20×0.0055 + 500×0.0019 + 200×0.0055 = 2.16≈ 64.8
硅谷(美西)20×0.006289 + 500×0.002 + 200×0.0055 = 2.226≈ 66.8
法兰克福20×0.006 + 500×0.0022 + 200×0.0057 = 2.36≈ 70.8
新加坡20×0.0061 + 500×0.0025 + 200×0.0061 = 2.592≈ 77.8

结论:这一档负载,月成本在 65~78 USD,而且选香港比选新加坡每月省约 13 USD。

场景 B:中型游戏(日活几十万,全区全服)

假设峰值读 10,000 RCU/s、峰值写 3,000 WCU/s、峰值容量 200 GB。

地域日费用(USD)月费用(USD)
香港(中国)200×0.0055 + 10000×0.0019 + 3000×0.0055 = 36.6≈ 1,098
硅谷(美西)200×0.006289 + 10000×0.002 + 3000×0.0055 = 37.76≈ 1,133
新加坡200×0.0061 + 10000×0.0025 + 3000×0.0061 = 44.52≈ 1,336

结论:中型负载月成本来到四位数美元(约 1,100~1,340)。此时「地域选择」一项就能省下每月约 240 USD、每年约 2,900 USD——这也是为什么把游戏服务器和数据库放在同一个便宜地域(例如香港)是常见的成本优化手段。

场景 C:社交应用(读多写少)

假设峰值读 50,000 RCU/s、峰值写 2,000 WCU/s、峰值容量 500 GB(贴近日 10 万 QPS 上限)。

地域日费用(USD)月费用(USD)
香港(中国)500×0.0055 + 50000×0.0019 + 2000×0.0055 = 108.75≈ 3,263
新加坡500×0.0061 + 50000×0.0025 + 2000×0.0061 = 140.25≈ 4,208

结论:读多写少的社交场景几乎全部成本来自 RCU(香港档 5 万 RCU 占日费的 87%)。优化方向因此非常明确:加索引 + 只读需要的字段 + 从备节点遍历(见第八节),把 RCU 峰值压下来,比换地域更有效。

场景 D:什么情况下才该上独享集群版?

假设中型游戏改用独享集群版(8 个接入层 + 4 个存储层 T1):

地域日费用(USD)月费用(USD)
中国大陆8×0.51 + 4×65.22 = 264.96≈ 7,949
硅谷(美西)8×1.57 + 4×224.49 = 910.52≈ 27,316
香港(中国)8×1.89 + 4×226.38 = 920.64≈ 27,619

同样是场景 B 的负载,独享版月费是标准版的 7~25 倍。结论很直白:只要峰值没超 10 万 QPS,就用标准集群版;独享版的溢价买的是「专用节点 + 更高更稳的性能上限」,不是「更便宜」。

七、八步实操:从购买集群到读写第一行数据

这一节按控制台 + 客户端工具的实际操作顺序走一遍。

第 1 步:购买集群并选对版本

进入腾讯云国际站控制台 → 数据库 → TcaplusDB → 新建集群。此时要做的关键决策只有两个:地域(香港最便宜,按用户就近原则综合判断)和版本(默认选标准集群版,除非你已知峰值会超 10 万 QPS)。创建即开始计费,记得把「最小 1 GB + 80 RCU + 26 WCU」记进成本表。

第 2 步:创建表格组(Table Group)

在集群下新建表格组。心里要清楚一个表格组最多 256 张表——如果你的业务表超过 256 张,从这一步就要开始规划分组了。

第 3 步:设计表结构(TDR 还是 Protobuf?)

TcaplusDB 支持 TDR 表和 Protobuf 表两种定义方式。Protobuf 表复用 Protobuf 生态、非主键字段可定义嵌套结构;TDR 表提供数组的 refer 属性等游戏特化能力。两者的设计准则高度一致:

  • 字段名 / 表名不含特殊字符,长度建议不超过 32 字节;
  • 主键与 shardkey 必须高度离散(因为分片是 hash(shardkey) % 10000);
  • 不要用二进制主键——不利于排障,且查询更慢;主键尽量简短、可读;
  • IP 用 INT 类型,时间用 LONG 类型(秒);
  • 索引最多 8 个,建议 2~3 个,且不要和主键定义相同;
  • TDR 表字段嵌套深度不超过 3 层,非主键字段应放在第一层嵌套。

第 4 步:创建表并选对表型

GENERIC 还是 LIST?判断标准就一句话:1:N 且 N < 1024 时优先用 LIST 表。角色属性这种「一主键一记录」用 GENERIC;邮件、战报这种「一主键多记录」用 LIST。

第 5 步:获取连接信息

在控制台集群详情里拿到 app_id(集群访问 ID)、zone(表格组)、dir_server_url(目录服务器地址) 等参数。注意:所有客户端操作必须在与集群同 VPC、同子网的 CVM 上执行(内网访问)。

第 6 步:装 SDK 或客户端工具

  • 客户端工具 tcaplus_client:随 TcaplusServiceAPI for Linux x86_64 包一起发布。解压后进入 bin 目录、chmod +x tcaplus_client 即可。官方文档列出的可用版本为 3.46.0.200178 与 3.55.0.208149(Linux x86_64)。
  • 启动参数:./tcaplus_client -a app_id -z zone_id -s signature -d dir_server_url [-t table_name] [-l log_file.xml] [-T tdr_file.tdr] [-e execute_command]。
  • SDK:官方提供 C++ SDK(Protobuf 表与 TDR 表两套指引)以及 RESTful API(Go / Java / PHP / Python 多语言样例)。

第 7 步:读写数据,先把「只读写需要的字段」用起来

客户端工具里,所有 DML 语句都必须带 WHERE 子句,且必须包含至少一个主键字段;多主键用 and 连接。而在 SDK 里,官方强烈建议显式调用 SetFieldNames 指定本次读写的字段——这样能避免传输无效字段、减少网络流量与磁盘读写,直接降低 RCU/WCU 消耗。

第 8 步:打开压缩、把遍历打到备节点

两个「不改代码逻辑就能省钱」的开关:

  • 压缩:TcaplusDB 基于 Google snappy 提供「协议压缩」(游戏服务器 ↔ tcaproxy 的请求/响应包)与「数据压缩」(tcapsvr 的落盘数据)。调用 SetCompressSwitch 打开数据压缩,可省磁盘空间、提升 IO 性能;网络流量贵的话打开协议压缩。
  • 从备节点遍历:调用 SetOnlyReadFromSlave(true),让遍历操作走备 tcapsvr,避免影响主节点对外提供的服务。

八、硬边界与避坑清单

TcaplusDB 的限制不是「文档里的小字」,而是会直接改变你架构设计方式的硬约束。这一节按「会踩坑」的顺序排列。

① 不支持多表事务,也不支持批量写。 官方 FAQ 明确:TcaplusDB 既不支持多表事务,也不支持批量写。要做多表事务必须在业务侧改造,且操作要串行提交——如果同时提交多个操作、其中一个失败,所有已完成的操作都会被回滚。官方建议对重要操作记日志,以便回滚后重新提交。

② 不要把有逻辑关联的字段拆到多张表。 既然没有多表事务,逻辑相关的字段就应该合并进同一张表——这既是设计准则,也是规避「分布式事务问题」的唯一现实做法。

③ 乐观锁要用对。 TcaplusDB 用记录版本号实现乐观锁(思路类似「100 人抢同一张火车票」)。默认策略 CHECKDATAVERSION_AUTOINCREASE 是「版本号一致才写入并自增」——N 个并发请求只有第 1 个成功,其余返回 SVR_ERR_FAIL_INVALID_VERSION。另外两种策略 NOCHECKDATAVERSION_OVERWRITE(强制覆盖)和 NOCHECKDATAVERSION_AUTOINCREASE(不校验、服务端自增)都会放弃版本保护,除非你明确知道自己要什么,否则不要改默认值。

④ INSERT / UPDATE / REPLACE 的语义差异要背下来。

操作键不存在键已存在
INSERT插入报错 SVR_ERR_FAIL_RECORD_EXIST
UPDATE报错 TXHDB_ERR_RECORD_NOT_EXIST按乐观锁结果执行(失败报 SVR_ERR_FAIL_INVALID_VERSION)
REPLACE插入按乐观锁结果执行(失败报 SVR_ERR_FAIL_INVALID_VERSION)

⑤ 单表容量有「两个互相打架的官方数字」。 产品概述说「单表限制 50 TB」,而 FAQ 又说「单表可细分 10,000 个分片、每片 256 GB,即单表总量 10,000 × 256 GB」。这两个口径差了几个数量级,做容量规划时请以控制台实际可购规格/工单确认为准,不要把任何一个数字当成硬上限来设计。

⑥ 单实例 SDK 的资源占用很小,但 API 不是线程安全的。 官方给出 SDK 单实例最大内存 73 MB、最大 CPU 占用 30%。但 API 非线程安全(因为 tlog、tdr 等组件非线程安全),因此:单线程使用单个 API 对象、单个游戏分区使用单个 API 对象;跨分区交互时,在单个游戏服务器里维护多个 API 对象。

⑦ 单主键操作有序,跨主键/跨服务器无序。 同一个游戏服务器对同一主键的连续操作保序;不同主键之间不保序;不同游戏服务器之间不保序。依赖顺序的业务逻辑必须在同一主键、同一服务器内闭环。

⑧ 备份保留期是 7 天。 引擎备份文件保留 7 天,Ulog 保留 7 天(不同环境可能有差异,具体要联系客服确认)。超过 7 天的历史数据回滚不了——这是灾难恢复方案里必须写明的边界。

⑨ 遍历和批量读要限流。 官方建议 batchget / listgetall / getbypartkey 按 offset + limit 取数、limit 设为 200 并开启多包返回;遍历走备节点;游戏服务器本地控制超时,不要靠响应包判断超时。

⑩ 欠费 3 天数据会被清除。 按官方欠费规则:余额转负后可继续使用 24 小时(照常计费);欠费满 24 小时自动隔离并停止计费;隔离后 3 天内充值回正可解隔离;隔离满 3 天仍为负余额,实例被回收、数据全部清除且不可恢复。所以测试集群用完必须及时销毁——不只是省钱,也是避免数据被回收前的误判。

总结与延伸阅读

腾讯云国际版 TcaplusDB 补齐了本站数据库家族的最后一条腿——游戏宽表 NoSQL。它的技术核心是三层架构(管理层 / 接入层 tcaproxy / 存储层 tcapsvr)+ 内存与 SSD 冷热分层(LRU 换页)+ hash(shardkey) % 10000 一致性哈希分片,做到了单服务器 10 万 QPS、延迟 < 10ms;它的成本核心是按天峰值的后付费三费叠加(容量 + RCU + WCU),读侧单价普遍只有写侧的 1/2.5,且地域差价能到 25%;它的使用核心是主键与 shardkey 的离散度——这一项设计错了,后面怎么优化都救不回来。

三条最该记住的结论:

  1. 选型先看峰值:10 万 QPS 以内用标准集群版,别默认选独享版(贵 7~25 倍)。
  2. 成本先看地域:香港/日本最便宜,新加坡/首尔最贵,同一套负载差 25% 以上。
  3. 省钱先看字段:只读写需要的字段(SetFieldNames)+ 打开 snappy 压缩 + 遍历走备节点,是三个改动最小、回报最直接的动作。

把它和站内这几篇放在一起看,腾讯云国际站的数据库版图就完整了:

🚀 需要海外云服务器部署你的游戏或应用后端?通过 4.chengzicloud.cloud 访问首页,可一站对比腾讯云国际版等主流海外云厂商的服务器方案与优惠。

本文由 4.chengzicloud.cloud 提供,点击访问首页了解更多

常见问题(FAQ)

1:TcaplusDB 到底适合什么场景?我该不该从 MongoDB 切过来?

它适合游戏类、宽表类、超低延迟超高并发的场景:角色存档、背包、邮件、战报、榜单这类「按主键读写、偶尔按部分键查」的数据。判断标准是:如果你的查询几乎都能落到主键或少量索引上,且延迟要求 < 10ms、并发要求上万 QPS,就用 TcaplusDB;如果你的业务需要灵活的多字段查询、聚合、多表事务,请继续用 MongoDB 或 TDSQL。

2:标准集群版和独享集群版怎么选?

默认选标准集群版。标准集群版支持最高 10 万 QPS,覆盖了绝大多数游戏场景,且按峰值后付费、成本低。只有当你的峰值确实超过 10 万 QPS、或需要更高更稳定的性能上限时,才改用独享集群版——它的月费通常是标准版的 7~25 倍。

3:为什么我的集群一张表都没建,却一直在扣费?

这是标准集群版的「最小消费」规则:集群一经创建即产生费用,最小日消费为 1 GB 磁盘 + 80 RCU + 26 WCU。折算下来各国际站地域的空转月费约 9~12 USD(香港/日本约 9.02,新加坡约 10.94,首尔约 11.65)。测试集群用完请立即销毁。

4:账单是按平均值还是峰值算的?

按日峰值。当天读请求的最高瞬间决定 RCU 计费、写请求的最高瞬间决定 WCU 计费,两者各算各的、可以发生在不同时刻。所以任何一次流量尖刺都会完整计入当天账单——这也是「把离线/批处理任务挪到低谷执行」能省钱的直接原因。

5:RCU 和 WCU 到底怎么算?为什么我读 1 KB 却扣了 3 个 CU?

1 CU = 每秒 1 次 4 KB 单行读写,不足 4 KB 向上取整到 4 KB,超过 4 KB 按倍数算,且按「请求」与「响应」中较大者累计。官方例子里请求 1 KB、响应 9 KB → 9 KB 按「两个 4 KB + 一个向上取整的 4 KB」= 3 CU。想省 CU,就只读写需要的字段(SDK 里显式 SetFieldNames)。

6:为什么我的主键设计会导致热点?

因为分片规则是写死的 hash(shardkey) % 10000,且未定义 shardkey 时默认用主键。如果主键(或 shardkey)离散度低——例如自增 ID 或「大区号 + 固定前缀」——哈希后仍会聚集到少数分片,造成负载不均。官方准则因此反复强调:主键与 shardkey 必须高度离散,主键要简短、可读、避免二进制。

7:TcaplusDB 支持数据分析和导出吗?

支持。数据可以导出为 JSON、PB 等任意格式,导入 TDW 等数据分析系统;也支持把实时数据导入 MySQL。设计层面,官方建议把历史游戏数据、邮件、战报用数组类型存储(支持入队/出队与 TopN),可变的逻辑数据结构则定义为 BLOB、序列化后存储,以避免结构变更导致频繁改表。