关于MongoDB的一些一般性观点
优点:
- 无模式。如果您有一个灵活的架构,这对于像这样的文档存储是理想的
MongoDB的。这很难在RDBMS
中以高效的方式实现
- 易于扩展。使用副本集进行缩放读取。通过使用分片(自动平衡)进行缩放。只需启动另一台机器就可以了。添加更多计算机=添加更多RAM以分发您的工作集。
- 成本。当然,取决于哪个RDBMS,但MongoDB是免费的,可以在Linux上运行,非常适合运行更便宜的商品套件。
- 您可以根据数据的值选择所需的一致性级别(例如,更快的性能=激活和忘记插入MongoDB,性能降低=等待直接插入在返回之前已复制到多个节点)
缺点:
- MongoDB中的数据大小通常较高,因为例如每个文档都有字段名称存储它
- 查询时灵活性较低(例如没有JOIN)
- 不支持事务 - 在单个文档级别支持某些原子操作
- 目前Map / Reduce(例如进行聚合/数据分析)是可以的,但速度并不快。因此,如果需要,可能需要将类似Hadoop的内容添加到混合
中
- 更少的最新信息/快速发展的产品
我最近在MongoDB上blogged my thoughts作为来自SQL Server背景的人,所以你可能对此感兴趣(上面只是一些要点)。
如果您正在寻找“是否比RDBMS更好的MongoDB”答案 - 那么恕我直言,没有答案。像MongoDB这样的NoSQL技术提供了一种替代方案,可以补充RDBMS技术。一个可能比另一个更适合特定目的,所以所有关于根据给定要求调用最适合您的内容。