J'ai une collection "numéros" avec 200000 objet document avec {numéro: i} i = 1 à 200000temps de recherche avec index> sans index
Sans index $ gt: 10000 donne nscanned 200000 et 115 ms . Avec l'index sur le nombre $ gt: 10000 donne nscanned 189999 et 355 ms.
Pourquoi plus de temps avec l'indexation?
> db.numbers.find({number: {$gt: 10000}}).explain()
{
"cursor" : "BasicCursor",
"nscanned" : 200000,
"nscannedObjects" : 200000,
"n" : 189999,
"millis" : 115,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
}
}
> db.numbers.ensureIndex({number: 1})
> db.numbers.find({number: {$gt: 10000}}).explain()
{
"cursor" : "BtreeCursor number_1",
"nscanned" : 189999,
"nscannedObjects" : 189999,
"n" : 189999,
"millis" : 355,
"nYields" : 0,
"nChunkSkips" : 0,
"isMultiKey" : false,
"indexOnly" : false,
"indexBounds" : {
"number" : [
[
10000,
1.7976931348623157e+308
]
]
}
}
i essayé tant de fois, mais la différence est presque 200ms avec l'index et sans index. –