mongodb - MongoDB的优点和缺点?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。
关闭10年前.

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

最佳答案

关于 MongoDB 的一些一般要点

优点:

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

缺点:

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

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

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

https://stackoverflow.com/questions/5244437/

相关文章:

javascript - 何时在 Nodejs 中关闭 MongoDB 数据库连接

ruby-on-rails - 安装 Mongoid 后使用 Active Record 生成器?

node.js - 无法连接到 127.0.0.1 :27017, 原因:errno:111 连接被

node.js - 记录所有在应用程序中触发的 mongoose 查询

linux - 为什么在 Linux 上出现错误 mongod dead 但 subsys 被锁定和

node.js - 在 node.js 中模拟数据库?

linux - MongoDB 数据目录/data/db 未找到

javascript - 键名中的 MongoDB 点 (.)

mongodb - 如何从 MongoDB shell 连接到副本集?

mongodb - 将json文件插入mongodb