[英]Group Aggregation performance in MongoDB
我的API捕獲了大量數據,如下所示:
{
"_id" : ObjectId("57446a89e5b49e297031fab8"),
"applicationVersion" : "X.X.XXX.X",
"createdDate" : ISODate("2016-05-16T23:00:00.007Z"),
"identifier" : "v2/events/messages",
"durationInMilliseconds" : NumberLong(14)
}
我想將整個集合按標識符分組。 所以我使用聚合框架
$group : {
_id : {
identifier : "$identifier"
},
count : {
$sum : 1
}
}
我有一個關於標識符的索引。
這是一個簡單的計數,我可能想計算平均api響應時間以及類似的信息,但是速度卻讓我望而卻步。
在700萬份文檔上,聚合大約需要10秒鍾。 如果我在MSSQL上的SQL中進行等效分組,則花費的時間不到一秒鍾。
有沒有一種方法可以優化這種類型的聚合,或者我需要以不同的方式考慮一下,例如
MongoDB在聚合框架中不使用索引,除非$ match和$ sort如果用作聚合框架的第一階段。 這是局限性,我們希望將來能有所改善。
請參閱MongoDB中的管道運算符和索引
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.