谈到 NoSQL 运动,我完全是个菜鸟。我听说过很多关于 MongoDB 和 CouchDB 的信息。我知道两者之间存在差异。作为进入 NoSQL 世界的第一步,您建议学习哪个?
最佳答案
查看以下链接
- CouchDB Vs MongoDB
- MongoDB or CouchDB - fit for production?
- DB-Engines - Comparison CouchDB vs. MongoDB
更新:我发现很棒comparison of NoSQL数据库。
MongoDB (3.2)
- 编写语言:C++
- 要点:JSON 文档存储
- 许可证:AGPL(驱动程序:Apache)
- 协议(protocol):自定义、二进制 (BSON)
- 主/从复制(使用副本集进行自动故障转移)
- 内置分片
- 查询是 javascript 表达式
- 在服务器端运行任意 javascript 函数
- 具有地理空间索引和查询
- 具有不同性能特征的多个存储引擎
- 性能优于功能
- 文件验证
- 日记
- 强大的聚合框架
- 在 32 位系统上,限制为 ~2.5Gb
- 集成文本搜索
- GridFS 用于存储大数据 + 元数据(实际上不是 FS)
- 数据中心感知
最佳使用:如果您需要动态查询。如果您更喜欢定义索引,而不是 map/reduce 函数。如果您需要在大型数据库上获得良好的性能。如果您想要 CouchDB,但您的数据更改太多,会填满磁盘。
例如:对于大多数您会使用 MySQL 或 PostgreSQL 做的事情,但预定义的列确实会让您望而却步。
CouchDB (1.2)
- 编写于:Erlang
- 要点:数据库一致性、易用性
- 许可证:Apache
- 协议(protocol):HTTP/REST
- 双向 (!) 复制,
- 连续或临时,
- 具有冲突检测功能,
- 因此,主-主复制。 (!)
- MVCC - 写入操作不会阻塞读取
- 提供以前版本的文档
- 防崩溃(可靠)设计
- 需要不时压缩
- View :嵌入式 map /减少
- 格式化 View :列表和节目
- 可以进行服务器端文档验证
- 可以进行身份验证
- 通过“_changes”(!)进行实时更新
- 附件处理
最佳使用:用于累积、偶尔更改的数据,在这些数据上运行预定义的查询。版本控制很重要的地方。
例如:CRM、CMS 系统。主-主复制是一个特别有趣的功能,可以轻松进行多站点部署。
关于mongodb - NoSQL - MongoDB 与 CouchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3375494/