MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ist das Mongodb Aggregation Framework schneller als map/reduce?

Jeder Test, den ich persönlich durchgeführt habe (einschließlich der Verwendung Ihrer eigenen Daten), zeigt, dass das Aggregations-Framework um ein Vielfaches schneller ist als die Kartenreduzierung und normalerweise eine Größenordnung schneller ist.

Ich nehme nur 1/10 der von Ihnen geposteten Daten (aber anstatt den OS-Cache zu löschen und zuerst den Cache aufzuwärmen - weil ich die Leistung der Aggregation messen möchte und nicht, wie lange es dauert, die Daten einzulagern), habe ich Folgendes erhalten:

MapReduce:1.058 ms
Aggregation Framework:133 ms

Das Entfernen von $match aus dem Aggregation Framework und {query:} aus mapReduce (weil beide nur einen Index verwenden würden und das ist nicht das, was wir messen möchten) und das Gruppieren des gesamten Datensatzes nach key2 ergab:

MapReduce:18.803 ms
Aggregation Framework:1.535 ms

Diese stimmen sehr gut mit meinen früheren Experimenten überein.