MongoDB的优缺点?[关闭]


74

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



3
为什么要解决这样的问题?如赞成票所示,它很有用。那里太热心了。SO范式的一个很好的例子推得太远......
logicOnAbstractions

Answers:


130

MongoDB的一些一般要点

优点:

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

缺点:

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

我最近以来自SQL Server背景的人的身份在MongoDB上发表了自己的想法,因此您可能对此感兴趣(上面只是一些要点)。

如果您正在寻找“ MongoDB比RDBMS更好”的答案-恕我直言,没有答案。像MongoDB这样的NoSQL技术提供了一种替代RDBMS技术的方法。一个可能比另一个更适合于特定的目的,因此,这全都在于根据给定的需求确定最适合您的需求。


3
+1,但我认为必须注意的是,邮件列表的响应是即时,准确和深入的-当产品如此快速发展时,这确实很重要。
Lucas Zamboulis 2011年

好点子。在我的博客文章中,我确实将“社区”作为对MongoDB的肯定之一,并且“迅速发展”也是一种肯定。这并不是说RDMBS的社区也不是很
出色

6
我想说您错过了引用“免费”为专业人士的要点。确实,RDBMS世界中最好的替代方法是PostgreSQl,它在SQL标准和可靠性方面同样免费,甚至比SQLServer更好。
Morg。

1
@Morg-re:费用,我确实说过“取决于哪个RDBMS ...”以涵盖问题/答案的一般性。
AdaTheDev 2012年

3
听到更多关于没有模式的好处/成本以及如何通过实际示例进行了解的信息将很有帮助
Hack-R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.