MongoDB与CouchDB
当谈到NoSQL运动时,我是一个完整的noob。 我听说过很多关于MongoDB和CouchDB的信息。 我知道两者之间有区别。 你推荐学习哪些技术作为NoSQL世界的第一步?
请参阅以下链接
更新 :我发现了NoSQL数据库的很好的比较。
MongoDB(3.2)
最好用 :如果你需要动态查询。 如果你更喜欢定义索引,而不是map / reduce函数。 如果你需要在大数据库上有良好的表现。 如果你想要CouchDB,但你的数据变化太大,填满磁盘。
例如 :对于大多数你用MySQL或PostgreSQL做的事情,但是有预定义的列确实让你失望。
CouchDB(1.2)
最佳使用 :用于累积,偶尔会更改数据,在其上运行预定义的查询。 版本控制很重要。
例如 :CRM,CMS系统。 主 - 主复制是一个特别有趣的功能,允许轻松进行多站点部署。
如果你来自MySQL世界,MongoDB会因为其类似查询的语言支持而“感觉”更加自然。
我认为这是对许多人来说如此友善的原因。
如果您想要通过多节点安装程序(可能位于不同的数据中心或类似位置)利用卓越的主 - 主复制支持,CouchDB会非常棒。
MongoDB的复制(副本集)是一个主 - 从 - 从 - 从 - 设置,您只能在副本集中写入主节点并从其中读取。
对于标准的站点配置,这很好。 它非常好地映射到MySQL使用。
但是,如果您尝试创建像CDN这样的全局服务,即使对所有节点都进行读/写操作,也需要保持所有全局节点同步,但类似CouchDB中的复制对您来说将会是一大福音。
尽管MongoDB具有可以使用的类似查询的语言,并且感觉非常直观,但CouchDB采用“map-reduce”方法和这些视图的概念。 起初感觉很奇怪,但是当你掌握它的时候,它真的开始感觉直观。
这是一个快速的概述,所以它有一定的意义:
因此,这两个源都使用JSON文档,但是CouchDB会更多地遵循这个“每个服务器都是主服务器并且可以与世界同步”的方法,如果您需要它,这是非常棒的,而MongoDB实际上是NoSQL世界的MySQL。
所以,如果这听起来更像你所需要/想要的,那就去做吧。
像Mongo的二进制协议和CouchDB的RESTful接口的细微差别都是次要细节。
如果您希望原始速度和数据的安全性,您可以让Mongo运行速度比CouchDB更快,因为您可以告诉它运行内存不足,并且除了稀疏间隔之外不向磁盘提交任何内容。
你可以用Couch做同样的事情,但它的基于HTTP的通信协议将比在Mongo上的原始二进制通信速度慢2-4倍,速度超过一切! 场景。
请记住,如果服务器崩溃或磁盘故障损坏并将您的数据库遗忘,这样数据点并不像看起来那么神奇(除非您在Wall上执行实时交易系统街,在这种情况下看Redis)。
希望所有的帮助!
看看这些链接:
MongoDB与CouchDB(来自MongoDB端)
CouchDB与MongoDB:试图进行更多信息比较
CouchDB与MongoDB基准测试(性能对比)
上一篇: MongoDB vs CouchDB