对于 NoSQL 运动,我完全是个菜鸟。我听说过很多关于 MongoDB 和 CouchDB 的事情。我知道两者之间存在差异。作为进入 NoSQL 世界的第一步,您建议学习哪一项?
请参阅以下链接
- CouchDB 与 MongoDB http://www.slideshare.net/gabriele.lana/couchdb-vs-mongodb-2982288
- MongoDB 还是 CouchDB - 适合生产? https://stackoverflow.com/questions/895762/mongodb-or-couchdb-fit-for-production
- DB-Engines - CouchDB 与 MongoDB 的比较 https://db-engines.com/en/system/CouchDB%3BMongoDB
Update: 我发现很棒NoSQL 的比较 http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis数据库。
MongoDB (3.2)
- 编写语言:C++
- 要点:JSON文档存储
- 许可证:AGPL(驱动程序:Apache)
- 协议:自定义、二进制 (BSON)
- 主/从复制(副本集自动故障转移)
- 内置分片
- 查询是 JavaScript 表达式
- 在服务器端运行任意 JavaScript 函数
- 具有地理空间索引和查询
- 具有不同性能特征的多个存储引擎
- 性能优于功能
- 文件验证
- 写日记
- 强大的聚合框架
- 在 32 位系统上,限制为 ~2.5Gb
- 集成文本搜索
- GridFS存储大数据+元数据(实际上不是FS)
- 数据中心感知
最佳使用:如果需要动态查询。如果您更喜欢定义索引,而不是映射/归约函数。如果您需要在大数据库上获得良好的性能。如果您想要 CouchDB,但您的数据变化太多,填满了磁盘。
例如:对于您可以使用 MySQL 或 PostgreSQL 执行的大多数操作,但预定义列确实会阻碍您。
CouchDB (1.2)
- 编写语言:Erlang
- 要点:DB一致性、易用性
- 许可证:阿帕奇
- 协议:HTTP/REST
- 双向(!)复制,
- 连续的或临时的,
- 通过冲突检测,
- 因此,主主复制。 (!)
- MVCC - 写入操作不会阻止读取
- 以前版本的文档可用
- 仅防碰撞(可靠)设计
- 需要不时压实
- 视图:嵌入地图/减少
- 设置视图格式:列表和显示
- 可以进行服务器端文档验证
- 可进行身份验证
- 通过“_changes”实时更新(!)
- 附件处理
最佳使用:用于积累、偶尔更改的数据,将在其上运行预定义的查询。版本控制很重要的地方。
例如:CRM、CMS 系统。主主复制是一个特别有趣的功能,可以轻松实现多站点部署。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)