【问题标题】:Optimal storage engine for simple key/value database简单键/值数据库的最佳存储引擎
【发布时间】:2013-09-14 00:19:58
【问题描述】:

我正在尝试为数据库确定存储游戏对象的最佳引擎。我一直在尝试查找有关不同表引擎的各种信息,但到目前为止还没有发现太多可以让我朝着一个方向而不是另一个方向动摇的信息。

格式很简单。有一个包含所有对象的表。它有一个键和一个值:

[int64] id (index)
[blob] data (binary serialized data of varying length)

我们首先考虑使用文件系统,但我们想要具有内置集群支持的东西,如果需要可以远程运行,我们不想自己编写分发层。

目前,我们正在研究 MySql,主要是因为它是免费的,而且很容易向前推进。

我们的表将容纳大约 2-5 百万行,我们需要能够在

目前,一行的最大 BLOB 大约为 30kb。

我查看了 InnoDB、MyISAM 和 BDB,但到目前为止,除了 InnoDB 和 BDB 支持事务,而 MyISAM 不支持之外,我似乎无法收集到太多关于它们的信息。我以前在游戏中使用过嵌入式 BDB,但它没有与 MySql 集成,并且因为它没有在服务器后面抽象,所以很难使用。出于同样的原因,它没有固有的集群支持。

总结

所以,我们正在寻找的是:

  • 集群支持/故障转移冗余
  • 使用 int64 键 (
  • 事务支持

问题

  • 对于将使用 int64 键的键/值表来说,哪个引擎最好?为什么?

如果有人至少能指出我正确的方向,我将不胜感激。如果您有比 MySql 更好的选择,它是免费的,而且接口不笨,我也很乐意探索其他选项。

我们将使用 Java 进行交互。

请告诉我如何改进这个问题或更具体的问题!谢谢!

【问题讨论】:

  • 你正在寻找一个专业的Key-Value Store,也许 - 这是一个很大的名单:)

标签: java mysql database-design innodb


【解决方案1】:

MySQL 可能不会被认为是“最合适的”。 Check out this wikipedia article on databases meant to be used as key-value stores。它提到的一些比较受欢迎的有:

  • Apache Cassandra
  • 伏地魔计划
  • Riak
  • 大表
  • 内存缓存数据库
  • MongoDB(虽然我认为这是一个文档存储而不是 KV 存储...)
  • 伯克利数据库

【讨论】:

  • 是的,我已经阅读了许多反对它的论据,因为我不会将它用于关系数据。您是否知道任何满足集群支持并具有与 Java 一起使用的良好接口的 NoSql 数据库?
  • @crush 我不太确定。对不起。
  • 也许是时候结束这个问题了,现在我有了一些新的方向,可以做更多的研究。谢谢!
猜你喜欢
  • 1970-01-01
  • 2010-12-13
  • 2016-08-27
  • 2011-01-17
  • 2010-11-22
  • 2011-08-12
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多