【问题标题】:Is MapReduce any faster than doing the map and reduce in JS?MapReduce 比在 JS 中做 map 和 reduce 更快吗?
【发布时间】:2011-11-09 16:16:30
【问题描述】:

我将 MongoDB 与 Node.js 一起使用。在 Mongo 中使用 MapReduce 与我自己获取完整结果集并在 JS 中执行 map 和 reduce 相比有什么速度优势吗?

【问题讨论】:

标签: mongodb node.js mapreduce


【解决方案1】:

检索整个结果集并执行 m/r 应用程序端通常没有性能优势。事实上,在几乎所有情况下,将整个结果集都塞进节点服务器的内存中是一个特别糟糕的主意。

在 MongoDB 上执行 map/reduce 将确保在检索结果集和写回 m/r 的结果时不会浪费数据库和应用服务器之间的带宽。 MongoDB 的 map/reduce 也可以轻松扩展。

TL;DR : 总是在 MongoDB 中进行

【讨论】:

    【解决方案2】:

    如果您的数据库与您的服务器位于不同的主机上,则数据传输会更小,这将浪费更少的带宽和时间。

    【讨论】:

    • MongoDB m/r 不是原生实现的,而是在 MongoDB 的 JS 上下文中运行。
    【解决方案3】:

    数据的实际传输可能既昂贵又耗时。想象一下,如果每次您想进行库存盘点,您将所有物品运送到另一个仓库。

    您还必须考虑事物的扩展方式。

    • 使用 mongodb,您通常需要至少一个数据副本,这将提高基于读取的任务的性能。
    • 使用节点,您可能不需要添加第二台服务器,因为它的扩展性很好。向其添加密集型任务可能会导致您需要向外扩展节点服务器的数量。

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多