在mongodb的指数

时间:2015-01-07 18:39:46

标签: mongodb mongodb-query indices

我在mongo中有以下2个索引

  

{a,b,c,d}(复合)(称为rawIndex1)

     

{c}(称为time-gmt_1)

在具有一定数量数据的一台计算机中,给定查询使用第一个

在具有更多数据的第二台机器中,同一查询使用第二台机器。

这是预期的行为吗?

我唯一能想到的是在第二台机器(有大量数据)中,第一个索引的大小是第二个索引的两倍,mongo更喜欢第二个索引,因为它不能保留第一个索引在RAM中。

我在第一台机器上检查过,索引的大小与第二台机器的大小相反。

explain(“verbose”)的输出是

  

{                            “cursor”:“BtreeCursor time-gmt_1”,

                     "isMultiKey" : false,

                     "n" : 0,

                     "nscannedObjects" : 6,

                     "nscanned" : 7,

                     "scanAndOrder" : false,

                     "indexOnly" : false,

                     "nChunkSkips" : 0,

                     "indexBounds" : {

                             "c" : [

                                     [

                                             ISODate("2014-12-31T00:00:00Z"),

                                             ISODate("2015-01-07T23:59:59Z")

                                     ]

                             ]

                     }
              },
     

“cursor”:“BtreeCursor rawIndex1”,

                     "isMultiKey" : false,

                     "n" : 6,

                     "nscannedObjects" : 6,

                     "nscanned" : 6,

                     "scanAndOrder" : false,

                     "indexOnly" : false,

                     "nChunkSkips" : 0,

                     "indexBounds" : {

                      "a" : [

                                     [

                                             "an",

                                             "an"

                                     ]

                             ],

                             "b" : [

                                     [
                                             "bn",

                                             "bn"

                                     ]

                             ],

                             "c" : [

                                     [

                                             ISODate("2014-12-31T00:00:00Z"),

                                             ISODate("2015-01-07T23:59:59Z")

                                     ]

                             ],

                             "d" : [

                                     [

                                             "d1",

                                             "d1"

                                     ],

                                      [

                                             "d2",

                                             "d2"

                                     ],

                                     [

                                             "d3",

                                             "d3"

                                     ]

                                  ]

                           }
     

“cursor”:“BtreeCursor time-gmt_1”,

    "isMultiKey" : false,

    "n" : 6,

    "nscannedObjects" : 6,

    "nscanned" : 19755316,

    "nscannedObjectsAllPlans" : 26,

    "nscannedAllPlans" : 19755339,

    "scanAndOrder" : false,

    "indexOnly" : false,

    "nYields" : 4,

    "nChunkSkips" : 0,

    "millis" : 847364,

0 个答案:

没有答案