NoSQL-MongoDB vs CouchDB
谈到NoSQL运动,我是一个彻头彻尾的傻瓜。我听说过很多关于MongoDB和CouchDB的事。我知道两者之间有区别。您建议学习哪一项作为进入NoSQL世界的第一步?请参阅以下链接NoSQL-MongoDB vs CouchDB,mongodb,couchdb,nosql,Mongodb,Couchdb,Nosql,谈到NoSQL运动,我是一个彻头彻尾的傻瓜。我听说过很多关于MongoDB和CouchDB的事。我知道两者之间有区别。您建议学习哪一项作为进入NoSQL世界的第一步?请参阅以下链接 更新:我发现了很棒的数据库 MongoDB(3.2) 书面:C++ 要点:JSON文档存储 许可证:AGPL(驱动程序:Apache) 协议:自定义,二进制(BSON) 主/从复制(使用副本集进行自动故障切换) 内置切分 查询是javascript表达式 在服务器端运行任意javascript函数 具有地
- 书面:C++
- 要点:JSON文档存储
- 许可证:AGPL(驱动程序:Apache)
- 协议:自定义,二进制(BSON)
- 主/从复制(使用副本集进行自动故障切换)
- 内置切分
- 查询是javascript表达式
- 在服务器端运行任意javascript函数
- 具有地理空间索引和查询
- 具有不同性能特征的多个存储引擎
- 性能优于功能
- 文件验证
- 日记
- 强大的聚合框架
- 在32位系统上,限制为~2.5Gb
- 文本搜索集成
- GridFS存储大数据+元数据(实际上不是FS)
- 数据中心感知
- 书面语言:Erlang
- 要点:数据库一致性、易用性
- 许可证:Apache
- 协议:HTTP/REST
- 双向(!)复制
- 连续或临时
- 通过冲突检测
- 因此,主复制。(!)
- MVCC-写入操作不会阻止读取
- 文件的早期版本可用
- 仅限碰撞(可靠)设计
- 需要不时压实
- 视图:嵌入式地图/缩小
- 格式化视图:列表和显示
- 服务器端文档验证是可能的
- 可能的身份验证
- 通过“\u更改”(!)进行实时更新
- 附件处理
例如:CRM、CMS系统。主复制是一项特别有趣的功能,允许轻松的多站点部署。请查看以下链接:
如果您来自MySQL世界,MongoDB将“感觉”更加自然,因为它支持类似查询的语言 我想这就是为什么它对很多人如此友好的原因 如果您想在多节点设置中(可能是在不同的数据中心或类似的地方)利用真正强大的主复制支持,CouchDB是非常棒的 MongoDB的复制(副本集)是一种主-从-从设置,您只能在副本集中写入主机并从其中任何一个读取 对于标准站点配置,这是很好的。它非常适合MySQL的使用 但是,如果您试图创建一个像CDN这样的全局服务,它需要保持所有全局节点的同步,即使对所有节点都进行读/写操作,那么CouchDB中的复制之类的东西将给您带来巨大的好处 虽然MongoDB有一种类似查询的语言,您可以使用它,而且感觉非常直观,但CouchDB采用了“map reduce”方法,并使用了这种视图概念。一开始感觉很奇怪,但当你掌握了窍门后,你真的开始感觉直觉了 这里是一个快速概述,因此有一定的意义:
- CouchDB将所有数据存储在b树中
- 您不能使用类似“从用户中选择*,其中…”之类的内容动态地“查询”它
- 相反,您定义数据的离散“视图”。。。“这里是我所有用户的视图”、“这里是10岁以上所有用户的视图”、“这里是30岁以上所有用户的视图”等等
- 这些视图使用map-reduce方法定义,并定义为JavaScript函数
- 定义视图时,DB开始通过它向指定视图的DB提供所有文档,并将函数结果记录为该数据的“索引”
- 无论map/reduce函数做什么,都可以在视图上执行一些基本查询,例如询问特定的键(ID)或ID范围
- 通读一遍,这是我所见过的沙发上地图/缩略的最好说明
因此,这两个源代码都使用JSON文档,但CouchDB遵循的是“每台服务器都是主服务器,可以与世界同步”的方法,如果您需要的话,这种方法非常棒,而MongoDB实际上是NoSQL世界中的MySQL 因此,如果这听起来更像你需要/想要的,那就去做吧 Mongo的二进制协议与CouchDB的RESTful接口之间的细微差别都是次要的细节 如果你想要原始的速度和数据安全,你可以让Mongo比CouchDB运行得更快,因为你可以告诉它在内存不足的情况下运行,并且除了稀疏的时间间隔之外,不会将内容提交到磁盘 您也可以对coach执行同样的操作,但在这种“速度超过一切”的场景中,基于HTTP的通信协议将比使用Mongo的原始二进制通信慢2-4倍 记住,如果服务器崩溃或磁盘故障损坏并将数据库烧掉,那么原始疯狂的疯狂速度是无用的,因此数据点并不像看上去那么惊人(除非你在华尔街上做实时交易系统,在这种情况下看Redis)
希望一切都有帮助 现在市场上的NoSQL数据库比eve多得多