NoSQL - MongoDB 与 CouchDB [英] NoSQL - MongoDB vs CouchDB
问题描述
谈到 NoSQL 运动,我完全是个菜鸟.我听说过很多关于 MongoDB 和 CouchDB 的信息.我知道两者之间存在差异.作为进入 NoSQL 世界的第一步,您建议学习哪个?
I am a complete noob when it comes to the NoSQL movement. I have heard lots about MongoDB and CouchDB. I know there are differences between the two. Which do you recommend learning as a first step into the NoSQL world?
推荐答案
查看以下链接
更新:我发现了很好的 比较NoSQL 数据库.
Update: I found great comparison of NoSQL databases.
MongoDB (3.2)
- 编写语言:C++
- 要点:JSON 文档存储
- 许可证:AGPL(驱动程序:Apache)
- 协议:自定义、二进制 (BSON)
- 主/从复制(使用副本集进行自动故障转移)
- 内置分片
- 查询是 javascript 表达式
- 在服务器端运行任意 javascript 函数
- 具有地理空间索引和查询
- 具有不同性能特征的多个存储引擎
- 性能优于功能
- 文件验证
- 日记
- 强大的聚合框架
- 在 32 位系统上,限制为 ~2.5Gb
- 集成文本搜索
- GridFS 用于存储大数据 + 元数据(实际上不是 FS)
- 数据中心感知
最佳使用:如果您需要动态查询.如果您更喜欢定义索引,而不是 map/reduce 函数.如果您需要在大型数据库上获得良好的性能.如果您想要 CouchDB,但您的数据更改太多,会填满磁盘.
Best used: If you need dynamic queries. If you prefer to define indexes, not map/reduce functions. If you need good performance on a big DB. If you wanted CouchDB, but your data changes too much, filling up disks.
例如:对于大多数您会使用 MySQL 或 PostgreSQL 做的事情,但预定义的列确实会让您望而却步.
For example: For most things that you would do with MySQL or PostgreSQL, but having predefined columns really holds you back.
CouchDB (1.2)
- 编写于:Erlang
- 要点:数据库一致性、易用性
- 许可证:Apache
- 协议:HTTP/REST
- 双向 (!) 复制,
- 连续或临时,
- 具有冲突检测功能,
- 因此,主-主复制.(!)
- MVCC - 写入操作不会阻塞读取
- 提供以前版本的文档
- 防崩溃(可靠)设计
- 需要不时压缩
- 视图:嵌入式地图/减少
- 格式化视图:列表和节目
- 可以进行服务器端文档验证
- 可以进行身份验证
- 通过_changes"(!)进行实时更新
- 附件处理
最佳使用:用于累积、偶尔更改的数据,在这些数据上运行预定义的查询.版本控制很重要的地方.
Best used: For accumulating, occasionally changing data, on which pre-defined queries are to be run. Places where versioning is important.
例如:CRM、CMS 系统.主-主复制是一个特别有趣的功能,可以轻松进行多站点部署.
For example: CRM, CMS systems. Master-master replication is an especially interesting feature, allowing easy multi-site deployments.
这篇关于NoSQL - MongoDB 与 CouchDB的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!