Answers:
见以下链接
MongoDB(3.2)
最佳使用:如果您需要动态查询。如果您想定义索引,则不希望映射/归约函数。如果您需要大型DB上的良好性能。如果您想要CouchDB,但是您的数据变化太大,则填满磁盘。
例如:对于大多数使用MySQL或PostgreSQL进行的操作,但是具有预定义的列确实会使您退缩。
CouchDB(1.2)
最佳使用:用于累积,偶尔更改的数据,并在这些数据上运行预定义的查询。版本控制很重要的地方。
例如:CRM,CMS系统。主-主复制是一项特别有趣的功能,可以轻松进行多站点部署。
如果您来自MySQL世界,则MongoDB会因为对查询的支持而感到“自然”。
我认为这就是它对很多人如此友好的原因。
如果您想通过多节点设置(可能在不同的数据中心或类似的地方)使用真正出色的主-主复制支持,则CouchDB很棒。
MongoDB的复制(副本集)是master-slave-slave-slave- *设置,您只能在副本集中写入主数据库并从其中的任何一个读取。
对于标准站点配置,这很好。它很好地映射到MySQL的用法。
但是,如果您试图创建一个像CDN这样的全局服务,即使对所有全局节点进行读/写操作,也需要使所有全局节点保持同步,那么诸如CouchDB中的复制之类的东西对您来说将是一个巨大的福音。
尽管MongoDB拥有您可以使用且感觉非常直观的类查询语言,但CouchDB采取了“映射减少”方法以及这种视图概念。刚开始时感觉很奇怪,但是当您掌握它时,它真的开始变得直观了。
这是一个快速概述,因此很有意义:
因此,这两个资源都使用JSON文档,但是CouchDB遵循这种“每个服务器都是主服务器,并且可以与世界同步”的方法,如果您需要的话,这是很棒的,而MongoDB确实是NoSQL世界的MySQL。
因此,如果这听起来像您需要/想要的,那就去做吧。
诸如Mongo的二进制协议与CouchDB的RESTful接口之类的微小差异都是次要细节。
如果您想要原始速度并确保数据安全,可以使Mongo的运行速度比CouchDB快,因为它可以告诉它在内存不足的情况下运行,并且除了稀疏间隔外不将其提交到磁盘。
您可以使用Couch进行相同的操作,但是基于HTTP的通信协议将比与Mongo进行原始二进制通信的速度慢2到4倍,而这种“速度要快!” 场景。
请记住,如果服务器崩溃或磁盘故障损坏并将DB丢掉,原始的疯狂疯狂速度将毫无用处,因此数据点不会像看起来那样令人惊奇(除非您在Wall上进行实时交易系统街,在这种情况下,请查看Redis)。
希望所有的帮助!
现在,市场上NoSQL数据库的数量比以往任何时候都要多。如果您正在寻找一个基于支持,可扩展性,管理和成本的企业应用程序数据库,我建议甚至看看Gartner Magic Quadrant。
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
我想向尚未使用Couchbase的人推荐Couchbase,但不要基于报告(2.5.1)中显示的版本,因为它比CB Server今天的版本落后了将近2个修订版,即将在2H15发行4.0版。
http://www.couchbase.com/coming-in-couchbase-server-4-0
关于Couchbase作为供应商/产品的另一部分是,它是一种多用途类型的数据库。它可以充当纯K / V存储,具有多维缩放的面向文档的数据库,Memcached,具有持久性的备用缓存,并支持具有自动连接的ANSI 92兼容SQL,通过按一下按钮复制到DR群集以及甚至在生态系统中内置了一个移动组件。
如果没有其他问题,那么值得一试最新的基准测试:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html