0

对于可能增长非常快的初创公司,您会建议什么数据库?

更加具体:

  • 我们使用 JSON 与移动客户端交换数据,因此数据应该以这种格式存储理想
  • 数据模型比较简单,比如用户、类别、动作历史……
  • 用户“实时”交互(5 秒传播延迟仍然可以)
  • 查询是事先知道的(可以缓存结果或使用 mapreduce)
  • 该系统将有多达 10000 个并发用户(只是猜测......)
  • 交易是一个加号,但我认为没有它们也可以生存
  • 空间启用是一个加号
  • 节点之间的数据复制应该易于管理
  • 开源
  • 提供托管服务(我们想外包系统管理员部分)

我们现在有了一个带有标准关系 PostgreSQL/PostGIS 的功能私有原型。但是除了可扩展性问题之外,我必须将关系数据转换为 JSON,反之亦然,这在高负载下似乎是一种开销。

我做了一些研究,但我缺乏所有新的 NoSQL 东西的经验。
到目前为止,我想到了这些解决方案:

  • Couchbase:主-主复制、原生 JSON 文档存储、空间扩展、couchapps,虽然我不知道 iriscouch 托管,但它们似乎是不错的技术。
    到目前为止我看到的缺点是javascript调试,磁盘占用。
  • MongoDb:只有一个 master 但安全的故障转移。使用二进制 JSON。
  • Cluster MySQL:网络的常青树(我认为是一位大师)
  • PostgresSQL&Slony:因为我只是喜欢 Postgres :-)

但是还有很多其他人,Cassandra、Membase……你们有一些真实的生活经历吗?坏的也很重要!
提前致谢,

卡雷尔

4

1 回答 1

1

除非您已经在扩展方面遇到问题,否则您无法真正了解未来实际需要什么。您的设计决策应该基于您现在的需求,而不是您对客户的最佳估计。请记住,您必须先让您的前几位客户了解您的产品解决问题的能力,然后才能担心给您的第 10,000位客户留下深刻印象

也就是说,我发现几乎总是需要拥有基本上所有东西:

  • 一个智能/强大的数据库,用于存储当前应用程序中的重要数据和查询。为此,我在 PostgreSQL/PostGIS 之前别无选择。
  • 一个文档数据库(有时称为 NoSQL),用于永久记录通过您的系统的任何内容。一年前这是一个无效或无用的请求,但现在你有一个可以使用这种数据的应用程序,供应商终于给了你解析它所需的 API 规范,我希望你已经得到了它表格你可以使用它。在我目前的组织中,我们为此使用 CouchDB,到目前为止,它已被证明是一个不错的选择。

我必须将关系数据转换为 JSON,反之亦然,这似乎是高负载的开销。

并不真地; 昂贵的东西是 IO 和写得不好的查询。编组/解组是纯 CPU,这是世界上增长成本最低的东西。别担心。

于 2012-03-15T18:20:53.773 回答