数据库选型参考

数据库选型参考

目前,游戏程序的要求比以往更高。在线游戏一开始时只有几个用户和极少数据。但是,如果游戏获得成功,则可以轻松超过基础数据库管理系统的资源,这种情况并不少见。游戏程序的数据库必须每秒处理数万或数十万次读取和写入。 TcaplusDB 非常适合这些类型的工作负载。作为开发人员,您希望初始时成本较低,然后随着游戏程序变得越来越受欢迎而逐渐增加容量。TcaplusDB 无缝扩展以处理大量数据和大量用户。 下表说明TcaplusDB 之间的一些关键特性。

1. 高可用相关

特性TcaplusDB
数据持久化持久化到SSD
系统扩缩容支持无损扩缩容,对使用方无感知
系统升级支持无损升级,对使用方无感知

2. 性能相关

特性TcaplusDB
QPS单表千万级别QPS
存储容量单表PB级
时延5ms时延

3. 运维相关

特性TcaplusDB
回档精确到秒级回档,支持表级&记录级
备份增量备份、全量备份
同步与订阅支持同步到mysql、kafka等
读分流支持

4. 开发者相关

特性TcaplusDB
数据结构二维表,多key多value,同时支持list、嵌套等结构。
分库分表支持水平扩展,无需分库分表
本地索引支持本地索引,支持基于全key和带分表因子的部分key查询
二级索引支持全局二级索引,二级索引和主数据间为异步同步,存在毫秒级别一致性差异
多语言SDKC++、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条