MongoDB的优缺点?

时间:2011-03-09 10:31:32

标签: mongodb performance database

有谁能告诉我mongodb的优点和缺点,特别是与关系数据库的比较?包括ACID,可伸缩性,吞吐量,主内存使用,插入/查询性能和索引大小等。

1 个答案:

答案 0 :(得分:115)

关于MongoDB的一些一般性观点

优点:

  • 无模式。如果您有一个灵活的架构,这对于像这样的文档存储是理想的 MongoDB的。这很难在RDBMS
  • 中以高效的方式实现
  • 易于扩展。使用副本集进行缩放读取。通过使用分片(自动平衡)进行缩放。只需启动另一台机器就可以了。添加更多计算机=添加更多RAM以分发您的工作集。
  • 成本。当然,取决于哪个RDBMS,但MongoDB是免费的,可以在Linux上运行,非常适合运行更便宜的商品套件。
  • 您可以根据数据的值选择所需的一致性级别(例如,更快的性能=激活和忘记插入MongoDB,性能降低=等待直接插入在返回之前已复制到多个节点)

缺点:

  • MongoDB中的数据大小通常较高,因为例如每个文档都有字段名称存储它
  • 查询时灵活性较低(例如没有JOIN)
  • 不支持事务 - 在单个文档级别支持某些原子操作
  • 目前Map / Reduce(例如进行聚合/数据分析)是可以的,但速度并不快。因此,如果需要,可能需要将类似Hadoop的内容添加到混合
  • 更少的最新信息/快速发展的产品

我最近在MongoDB上blogged my thoughts作为来自SQL Server背景的人,所以你可能对此感兴趣(上面只是一些要点)。

如果您正在寻找“是否比RDBMS更好的MongoDB”答案 - 那么恕我直言,没有答案。像MongoDB这样的NoSQL技术提供了一种替代方案,可以补充RDBMS技术。一个可能比另一个更适合特定目的,所以所有关于根据给定要求调用最适合您的内容。