数据库选型参考
目前,游戏程序的要求比以往更高。在线游戏一开始时只有几个用户和极少数据。但是,如果游戏获得成功,则可以轻松超过基础数据库管理系统的资源,这种情况并不少见。游戏程序的数据库必须每秒处理数万或数十万次读取和写入。 TcaplusDB 非常适合这些类型的工作负载。作为开发人员,您希望初始时成本较低,然后随着游戏程序变得越来越受欢迎而逐渐增加容量。TcaplusDB 无缝扩展以处理大量数据和大量用户。 下表说明TcaplusDB 之间的一些关键特性。
1. 高可用相关
特性 |
TcaplusDB |
数据持久化 |
持久化到SSD |
系统扩缩容 |
支持无损扩缩容,对使用方无感知 |
系统升级 |
支持无损升级,对使用方无感知 |
2. 性能相关
特性 |
TcaplusDB |
QPS |
单表千万级别QPS |
存储容量 |
单表PB级 |
时延 |
5ms时延 |
3. 运维相关
特性 |
TcaplusDB |
回档 |
精确到秒级回档,支持表级&记录级 |
备份 |
增量备份、全量备份 |
同步与订阅 |
支持同步到mysql、kafka等 |
读分流 |
支持 |
4. 开发者相关
特性 |
TcaplusDB |
数据结构 |
二维表,多key多value,同时支持list、嵌套等结构。 |
分库分表 |
支持水平扩展,无需分库分表 |
本地索引 |
支持本地索引,支持基于全key和带分表因子的部分key查询 |
二级索引 |
支持全局二级索引,二级索引和主数据间为异步同步,存在毫秒级别一致性差异 |
多语言SDK |
C++、GO、java、python、RESTFul API等 |
mysql协议兼容 |
支持用mysql driver访问 |
异步访问 |
支持 |
同步访问 |
支持 |
批量读写 |
支持 |
多表关联查询 |
不支持 |
单表复杂查询 |
开启二级索引后部分支持 |
条件过滤 |
在确定key的情况下支持value字段过滤 |
一致性 |
采用主备架构,最终一致 |
跨行跨表事务 |
不支持 |
读写保顺 |
支持 |
记录版本号 |
支持 |
TTL |
支持 |
5. 系统限制
项目 |
限制 |
单个集群下可创建业务(App)数量 |
最大510个 |
单个业务下可创建游戏区(Zone,表格组)数量 |
最大2048个 |
单个游戏区(Zone,表格组)下可创建的表数量 |
最大256个 |
数据表名长度 |
最大32B |
单张表可指定的主键字段数量 |
最大8个(List表内置的index字段占用1个主键字段,用户实际可指定的主键字段个数为7个) |
单张表可定义的普通字段(非主键字段)数量 |
最大256个 |
单张表可定义的本地索引数量 |
最大8个 |
数据表字段名长度 |
最大32B |
单个本地索引可指定的索引字段数量 |
最大8个 |
单条数据单个主键字段值的大小 |
最大1KB |
单条数据所有主键字段值的总大小 |
最大8KB(PB表的所有主键字段,序列化后的总长度不能超过1022B) |
单条数据单个普通字段值的大小 |
最大10MB |
单条数据所有普通字段值的总大小 |
最大10MB |
List表中单个列表可容纳的元素个数 |
最大10000个 |
单个数据分片的大小 |
最大256G |
单表数据分片数量 |
最大10000个 |
修改表-增加字段 |
支持增加普通字段 |
修改表-删除字段 |
暂不支持 |
修改表-增加/删除本地索引 |
暂不支持 |
单次全局索引查询可返回的数据条数 |
最大3000条 |