2011-03-09 119 views
62

有人可以告诉我什么是MongoDB的优点和缺点,特别是与关系数据库比较?包括酸性,可扩展性,吞吐量,主内存使用情况,插入/查询有关MongoDBMongoDB的优缺点?

优点性能和索引的大小等

+2

它可能有帮助http://www.code-sample.com/2016/07/mongodb-advantages-disadvantages.html – 2016-07-12 09:44:13

+1

为什么要关闭这样的问题?正如赞成票显示,它是有用的。在那里过分热情。一个很好的例子是SO范式被推得太远...... – 2017-12-12 16:47:13

回答

102

一些一般性的要点:

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

缺点:MongoDB中

  • 数据大小通常是由于例如,更高每个文档存储的字段名称是
  • 与查询(例如,没有连接)
  • 对交易不支持少flexibity - 此刻地图的某些原子操作的支持,在一个单一的文件级别
  • /缩小(例如,为了做聚合/数据分析)是可以的,但不是太快。所以,如果这是需要的,像Hadoop的可能需要添加到组合
  • 少的最新资料/快速发展的产品

我最近blogged my thoughts有关MongoDB有人从SQL Server背景的人,所以你可能对此感兴趣(以上只是一些要点)。

如果你正在寻找一个“是MongoDB比RDBMS好”的答案 - 那么恕我直言没有答案。像MongoDB这样的NoSQL技术提供了一种替代方案,它补充了RDBMS技术。一个人可能比另一个人更适合某种特定的目的,因此只需要针对特定​​的要求打电话给你最适合的人。

+3

+1,但我认为重要的是要注意邮件列表的响应速度是直接的,准确的和深入的 - 当产品发展如此之快时,这非常重要。 – 2011-03-09 11:48:37

+0

好点。在我的博客文章中,我确实将“社区”包含为MongoDB的积极因素之一,并且“快速发展”也是积极的。这并不是说RDMBS的社区并不是很棒,因为它是从SQL Server POV发言的。) – AdaTheDev 2011-03-09 12:12:51

+5

我想说你错过了引用“free”作为职业选手的一个主要观点。事实上,RDBMS领域的最佳选择是PostgreSQl,它在SQL标准和可靠性方面与SQLServer一样自由,甚至更好。 – 2012-02-29 15:29:39