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?
推荐答案
请参阅以下链接
- CouchDB Vs MongoDB
- MongoDB or CouchDB - fit for production?
- DB-Engines - Comparison CouchDB vs. MongoDB
更新:我发现很棒的比较NoSQL数据库.
MongoDB(3.2)
- 写在:C ++
- 要点:JSON文档存储
- 许可证:AGPL(驱动程序:Apache)
- 协议:自定义二进制(BSON)
- 主/从复制(具有副本集的自动故障转移)
- 内置阴影
- 查询是javascript表达式
- 在服务器端运行任意的javascript函数
- 具有地理空间索引和查询
- 具有不同性能特征的多个存储引擎
- 性能优于功能
- 文档验证
- 日记
- 强大的聚合框架
- 在32位系统上,限制为〜2.5Gb
- 集成了文本搜索
- GridFS用于存储大数据和元数据(实际上不是FS)
- 了解数据中心
- Written in: C++
- Main point: JSON document store
- License: AGPL (Drivers: Apache)
- Protocol: Custom, binary (BSON)
- Master/slave replication (auto failover with replica sets)
- Sharding built-in
- Queries are javascript expressions
- Run arbitrary javascript functions server-side
- Has geospatial indexing and queries
- Multiple storage engines with different performance characteristics
- Performance over features
- Document validation
- Journaling
- Powerful aggregation framework
- On 32bit systems, limited to ~2.5Gb
- Text search integrated
- GridFS to store big data + metadata (not actually an FS)
- Data center aware
最常用:如果您需要动态查询.如果您想定义索引,则不希望映射/归约函数.如果您需要大型DB上的良好性能.如果您想要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'(!)实时更新
- 附件处理
- Written in: Erlang
- Main point: DB consistency, ease of use
- License: Apache
- Protocol: HTTP/REST
- Bi-directional (!) replication,
- continuous or ad-hoc,
- with conflict detection,
- thus, master-master replication. (!)
- MVCC - write operations do not block reads
- Previous versions of documents are available
- Crash-only (reliable) design
- Needs compacting from time to time
- Views: embedded map/reduce
- Formatting views: lists & shows
- Server-side document validation possible
- Authentication possible
- Real-time updates via '_changes' (!)
- Attachment handling
最常用:用于累积,偶尔更改的数据,在这些数据上运行预定义的查询.版本控制很重要的地方.
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屋!