首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我们以复合索引的相反顺序查询MongoDB数据库,会发生什么情况?

问如果我们以复合索引的相反顺序查询MongoDB数据库,会发生什么情况?
EN

Stack Overflow用户
提问于 2021-12-30 07:21:25
回答 1查看 51关注 0票数 0

我有以下索引

代码语言:javascript
复制
Origin.SN_1_timestamp.milliseconds_-1_error_1

我正在运行以下查询

代码语言:javascript
复制
db.getCollection("error").aggregate([
{
   "$match":{
      "$and":[
         {
            "error":{
               "$ne":"No Error"
            }
         },
         {
            "timestamp.milliseconds":{
               "$gte":1617561000000
            }
         },
         {
            "timestamp.milliseconds":{
               "$lte":1617627557579
            }
         },
         {
            "Origin.SN":{
               "$in":[
                  "4090",
                  "4080"
               ]
            }
         }
      ]
   }
},
{
   "$group":{
      "_id":"$error",
      "count":{
         "$sum":1
      }
   }
},
{
   "$project":{
      "_id":0,
      "count":"$count",
      "error":"$_id"
   }
},
{
   "$sort":{
      "count":-1
   }
},
{
   "$limit":1
}
])

您可以看到,复合索引的顺序在查询中颠倒了。尽管这个查询在IXSCAN中使用了上面的索引。这里面有什么性能损失吗?我是否需要以相反的顺序创建另一个复合索引,以获得更好的性能?

EN

回答 1

Stack Overflow用户

发布于 2021-12-30 12:53:40

我认为性能不受索引顺序的影响,但您可以解释查询并检查执行时间:

集合管道运行的返回信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70528557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档