sql >> Database teknologi >  >> NoSQL >> MongoDB

Er cursor.skip() på indekserede nøgler altid hurtigere?

Ingen af ​​dine forespørgsler foretager et filter på age , så der er ingen grund til at bruge indekset.

Hvis du tilføjer en betingelse om age , vil der være en forskel (selvom den er minimal med så få dokumenter)

> pageNumber=18;nPerPage=20; db.slow.find({age:{$gt:200}}).
      skip(pageNumber > 0 ? ((pageNumber-1)*nPerPage) : 0).limit(nPerPage).
      explain("executionStats")

# "executionTimeMillis" : 14,
# "inputStage" : {
#     "stage" : "COLLSCAN",

> pageNumber=18;nPerPage=20; db.fast.find({age:{$gt:200}}).
      skip(pageNumber > 0 ? ((pageNumber-1)*nPerPage) : 0).limit(nPerPage).
      explain("executionStats"

# "executionTimeMillis" : 0,
# "inputStage" : {
#     "stage" : "IXSCAN",


  1. MongoDB Object.bsonSize()

  2. MapReduce i PyMongo

  3. Mongodb:Udfør en datointervalforespørgsel fra ObjectId i mongo-skallen

  4. Mongoose forbindelse til replika sæt