我正在使用带有Node.js的MongoDB。在Mongo中使用MapReduce是否有任何速度优势,而不是在我自己的JS中获取完整的结果集并执行地图和减少?
答案 0 :(得分:4)
检索整个结果集和执行m / r app端通常没有性能优势。事实上,在几乎所有情况下,在节点服务器上将整个结果集塞进内存中是一个特别糟糕的主意。
在MongoDB上执行map / reduce将确保在检索结果集和写回m / r的结果时,数据库和应用服务器之间没有浪费带宽。 MongoDB的map / reduce也可以轻松扩展。
TL; DR:始终在MongoDB中执行
答案 1 :(得分:1)
如果您的数据库与服务器位于不同的主机上,则数据传输会更小,这将浪费更少的带宽和时间。
答案 2 :(得分:0)
实际的数据传输既费钱又费时。想象一下,如果您每次想要进行库存盘点,那么您将所有物品运送到另一个仓库。
此外,您必须考虑事物的扩展方式。