mpe*_*row 149 couchdb mongodb nosql
在NoSQL运动方面,我是一个完整的菜鸟.我听说过很多关于MongoDB和CouchDB的内容.我知道两者之间存在差异.你建议学习哪些作为进入NoSQL世界的第一步?
amr*_*mra 146
请参阅以下链接
MongoDB(3.2)
最佳使用:如果您需要动态查询.如果您更喜欢定义索引,而不是map/reduce函数.如果你需要在大数据库上有良好的性能.如果你想要CouchDB,但你的数据变化太大,填满了磁盘.
例如:对于你使用MySQL或PostgreSQL做的大多数事情,但是有预定义的列确实阻止了你.
CouchDB(1.2)
最佳使用:用于累积,偶尔更改数据,以及要在其上运行预定义查询.版本控制很重要的地方.
例如:CRM,CMS系统.主 - 主复制是一项特别有趣的功能,可以轻松实现多站点部署.
Riy*_*lla 120
如果您来自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).
希望一切都有所帮助!
看看这些链接: