sql >> Database >  >> NoSQL >> MongoDB

Is het Mongodb Aggregation-framework sneller dan kaart/verkleinen?

Elke test die ik persoonlijk heb uitgevoerd (inclusief het gebruik van uw eigen gegevens) laat zien dat het aggregatieraamwerk een veelvoud is dat sneller is dan kaartverkleining, en meestal een orde van grootte sneller is.

Gewoon 1/10e van de gegevens die je hebt gepost nemen (maar in plaats van de cache van het besturingssysteem te wissen, eerst de cache op te warmen - omdat ik de prestaties van de aggregatie wil meten, en niet hoe lang het duurt om de gegevens in te bladeren) kreeg ik dit:

MapReduce:1,058 ms
Aggregatiekader:133 ms

Het $match verwijderen uit het aggregatieframework en {query:} uit mapReduce (omdat beide gewoon een index zouden gebruiken en dat is niet wat we willen meten) en het groeperen van de volledige dataset op key2 die ik kreeg:

MapReduce:18.803ms
Aggregatieraamwerk:1.535ms

Die komen heel goed overeen met mijn eerdere experimenten.



  1. Aan de slag met Cloudera Data Platform Operational Database (COD)

  2. Stream van een mongodb-cursor naar Express-reactie in node.js

  3. MongoDB $jaar

  4. MongoDB en CodeIgniter