可启动的可扩展持久性

时间:2012-03-15 15:59:22

标签: mysql mongodb postgresql couchbase nosql

对于可能增长速度非常快的创业公司,您会建议使用哪个数据库?

更具体一点:

  • 我们使用JSON与移动客户端交换数据,因此数据应以理想方式存储在此格式中
  • 数据模型比较简单,如用户,类别,历史记录 行动......
  • 用户“实时”互动(5秒传播延迟仍然可以)
  • 预先知道查询(可以缓存结果或使用mapreduce)
  • 系统最多可拥有10000个并发用户(只是猜测......)
  • 交易是一个优点,但我可以在没有它们的情况下生活
  • 空间启用是一个加号
  • 节点之间的数据复制应易于管理
  • 开源
  • 提供托管服务(我们希望外包系统管理员部分)

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

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

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

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

卡雷尔

1 个答案:

答案 0 :(得分:1)

除非您已经遇到缩放问题,否则您无法真正了解未来实际需要的内容。您应该根据自己的需求现在来制定设计决策,而不是在您对客户有最佳估计时。请记住,你必须给你的前几个客户留下深刻的印象,让你的产品解决他们的问题,然后再担心给你的问题留下深刻的印象

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

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

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

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