我正在尝试确定数据库存储我们游戏对象的最佳引擎。我一直在尝试查找有关不同表引擎的各种信息,但到目前为止还没有发现太多可以使我朝一个方向摇摆不定的信息。
格式很简单。有一个包含所有对象的表。它有一个键和一个值:
[int64] id (index)
[blob] data (binary serialized data of varying length)
我们首先考虑使用文件系统,但我们想要具有内置集群支持的东西,如果需要可以远程运行,我们不想自己编写分布层。
现在,我们正在研究 MySql,主要是因为它是免费的,而且很容易向前推进。
我们的表将容纳大约 2-5 百万行,我们需要能够在 <1ms 内进行查找/更新/插入。
目前,一行的最大 BLOB 大约为 30kb。
我看过 InnoDB、MyISAM 和 BDB,但到目前为止,除了 InnoDB 和 BDB 支持事务,而 MyISAM 不支持之外,我似乎无法收集太多关于它们的信息。我以前在游戏中使用过嵌入式 BDB,但它没有与 MySql 集成,并且因为它没有在服务器后面抽象,所以很难使用。出于同样的原因,它没有固有的集群支持。
概括
所以,我们正在寻找的是:
- 集群支持/故障转移冗余
- 使用 int64 键(<1ms)极快的查找/更新/插入
- 交易支持
问题
- 哪个是使用 int64 键的键/值表的最佳引擎?为什么?
如果有人至少能指出我正确的方向,我将不胜感激。如果您有一个比 MySql 更好的选择,它是免费的,而且界面不钝,我也很乐意探索其他选项。
我们将从Java接口。
请让我知道如何改进这个问题或更具体!谢谢!