【问题标题】:MongoDB versus CouchDB... And any other "major players"MongoDB 与 CouchDB ......以及任何其他“主要参与者”
【发布时间】:2010-09-03 11:19:19
【问题描述】:

MongoDB 和 CouchDB 之间的主要区别是什么,还有其他值得一提的主要 NO-SQL 数据库服务器吗?

我知道 CERN 在其 LHC 后端的某处使用 CouchDB; 巨大的批准印章。什么是 MongoDB - 以及任何其他主要服务器的 - 参考?


更新

对我来说,CouchDB 的主要卖点之一是基于 REST 的 API 和使用 JSON 作为数据包装器的无缝 JavaScript 集成。这对于提到的任何其他 NO-SQL 数据库是否可行?

【问题讨论】:

  • CERN 也在使用 MongoDB:blog.mongodb.org/post/660037122/…
  • @kristina:是吗?我在我的问题中提到了这一点。
  • 你提到了 Couch,而不是 Mongo,被 CERN 使用。
  • @kristina:啊,是的。有点困惑,一会儿:)

标签: mongodb couchdb database-server nosql


【解决方案1】:

还有很多不同之处,但有一些要点:

  • CouchDB 具有 MVCC(多版本并发控制) - 每次更新文档时,都会创建一个新版本。而 MongoDB 是就地更新的。
  • CouchDB 支持多主机,因此您可以写入任何服务器。 MongoDB 只有 1 台服务器可用于写入(主从) - 但是:我这可能在最新版本 (1.6) 中发生了变化,因此 MongoDB 现在可能支持多个服务器进行写入

查看谁在使用 MongoDB see here(例如,foursquare、bit.ly、sourceforge....)

查看谁在使用 CouchDB see here

最著名的其他 NoSQL 数据库是 Cassandra (facebook, twitter) 然后你有HBaseHyperTableRavenDBSimpleDB,还有更多......

【讨论】:

  • 取决于你想对数据库做什么,还有memcachedredis
  • 是的。虽然 memcached 没有持久性,但它“只是”一个分布式缓存 - 但有 memcachedb!
  • CouchDB 确实通过更新功能进行就地更新。 wiki.apache.org/couchdb/Document_Update_Handlers
  • 1.6 绝对支持分片(AKA 写入多个服务器)。它还具有对副本集的基本支持(AKA 自动故障转移)。
【解决方案2】:

欢迎来到一些新领域 @AdaTheDev 涵盖了大多数主要领域。还有伏地魔计划,东京内阁/暴君,以及所有这些东西的一大堆包装。所以人们也在构建 MemcacheDB(带有持久层的memcache)。

MongoDB 有几个钩子来支持“REST”API(查看“Sleepy Mongoose”和 Node.js 支持)。 MongoDB 和 CouchDB 有不同的处理 map-reduce 的方法(尽管它们有些相似)。 MongoDB 没有 MVCC,但是这两个系统确实有不同的数据存储方式,每个系统都有自己的权衡取舍。

MongoDB 使用特定于语言的驱动程序,而 CouchDB 使用 REST(性能权衡)。

更详细的比较看here

【讨论】:

    【解决方案3】:

    对于关系开发人员来说,MongoDB 可能更容易掌握,因为它使用驱动程序并且对即席查询有更好的支持。 CouchDB 与旧的关系处理方式几乎没有共同之处。

    两者处理分片和复制的方式不同。

    话虽如此,我相信两者在概念上足够相似,因此通常归结为个人喜好。用它们编写代码都很有趣。事实上,我们为一个内部项目评估了这两个项目,并反复考虑了我们的决定。

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 2015-12-28
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 2011-06-11
      • 2023-04-02
      • 2019-10-07
      相关资源
      最近更新 更多