MapReduce比JS更快吗?

我用Node.js使用MongoDB 在Mongo中使用MapReduce有没有速度优势,而不是获得完整的结果集,并在我自己的JS做一个地图和减less?

检索整个结果集和执行m / r应用程序通常没有性能优势。 实际上,在几乎所有情况下,在节点服务器上填充内存中的整个结果集是非常糟糕的主意。

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

TL; DR:始终在MongoDB中执行

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

数据的实际传输可能是昂贵和耗时的。 想象一下,如果每次你想做一个库存盘点,你把所有的物品运到另一个仓库。

你也必须考虑事物的规模。

  • 使用MongoDB,您通常需要至less一个数据副本,这将为基于读取的任务添加性能。
  • 有了节点,你可能不需要增加第二台服务器,因为它的规模有多好。 向其添encryption集型任务可能会导致您需要扩大面向外的节点服务器的数量。