MongoDB的优缺点?

zbd*_*blo 70 database performance mongodb

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

Ada*_*Dev 118

关于MongoDB的一些一般观点

优点:

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

缺点:

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

我最近在MongoDB上写了一篇关于来自SQL Server背景的人的想法,所以你可能会对此感兴趣(上面只是一些要点).

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

  • 我会说你错过了一个以"免费"为专业人士的重点.事实上,RDBMS世界中最好的选择是PostgreSQl,它在SQL标准和可靠性方面与SQLServer一样自由甚至更好. (5认同)
  • +1,但我认为重要的是要注意邮件列表的响应能力是即时,准确和深入的 - 这在产品快速发展时非常重要. (3认同)
  • 更多地了解没有架构的好处/成本以及它如何通过实际示例发挥作用将会有所帮助 (3认同)