MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Cursor.skip() на индексирани ключове винаги ли е по-бърз?

Нито една от вашите заявки не прави филтър по age , така че няма причина да използвате индекса.

Ако добавите условие за age , ще има разлика (дори и минимална с толкова малко документи)

> 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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да се справяте с взаимоотношенията, докато използвате mongodb

  2. Mongo Дава „грешка с дублиран ключ“ в неуникални полета

  3. създаване на родителски обект, който влага деца в mongoose

  4. Импортирайте повече от 1 json файл с помощта на mongoimport

  5. MongoDB Group, използваща Ruby драйвер