Медленный запрос MongoDB: можете ли вы объяснить, почему? - PullRequest
3 голосов
/ 04 января 2012

У меня есть запрос MongoDB, который выполняется неоправданно долго, но он:

  • только сканирует 6 объектов
  • последовательно достигает индекса
  • занимает ~ 1500 мс (не занимался поиском или иным образом занят)
  • индекс пропуска% равен 0 в mongostat

Он обнаружился в профилировщике (без объяснения ()), и яне понимаю, почему это так медленноЕсть идеи?

gimmebar:PRIMARY> db.assets.find({ owner: "123", avatar: false, private: false }).sort({date: -1}).explain()
{
    "cursor" : "BtreeCursor owner_1_avatar_1_date_-1",
    "nscanned" : 6,
    "nscannedObjects" : 6,
    "n" : 6,
    "millis" : 1567,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "isMultiKey" : false,
    "indexOnly" : false,
    "indexBounds" : {
        "owner" : [
            [
                "123",
                "123"
            ]
        ],
        "avatar" : [
            [
                false,
                false
            ]
        ],
        "date" : [
            [
                {
                    "$maxElement" : 1
                },
                {
                    "$minElement" : 1
                }
            ]
        ]
    }
}

1 Ответ

4 голосов
/ 04 января 2012

Отсутствует индекс на клавише private?

BtreeCursor owner_1_avatar_1_date_-1 против .find({ owner: "123", avatar: false, private: false }).sort({date: -1})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...