У меня есть небольшая база данных Mongo с записями ~ 30k. Простой запрос, который использует 5-6 параметров, занимает почти секунду (учитывая, что весь БД находится в ОЗУ). Может ли кто-нибудь предположить, что я делаю неправильно?Как улучшить/оптимизировать скорость запроса MongoDB?
2015-11-26T18: 41: 29,540 + 0200 [CONN3] Команда vvpilotdb2 $ CMD Команда:. Количество {кол: "TestResults", запрос: {Test: 5.0, ISAC: правда, INPUTMODE: 0.0, IsOfficialTest: true, IsSanity: false, IsStress: false, IsUnderNoise: false, MetalRodSize: 9.0}, поля: {}} planSummary: COLLSCAN keyUpdates: 0 numYields: 1 locks (micros) r: 1397227 reslen: 48 944ms
Адрес db.stats(). Я сам не присвоил никаких индексов. все настройки - по умолчанию .:
> db.stats()
{
"db" : "vvpilotdb2",
"collections" : 5,
"objects" : 28997,
"avgObjSize" : 7549.571610856296,
"dataSize" : 218914928,
"storageSize" : 243347456,
"numExtents" : 17,
"indexes" : 3,
"indexSize" : 964768,
"fileSize" : 469762048,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"ok" : 1
}
Что такое объяснить этот запрос? Вам не хватает некоторых индексов? –
Можете ли вы запустить объяснение в симпатичном режиме? Его невозможно прочитать эту длинную линию. Тем не менее, ответ на оптимизацию в Монго почти всегда (1) правильная индексация и (2) осколки –
Извините, я новичок в Mongo. Я не знал, что этот запрос объяснил, я искал его, вот объяснение запроса, который я выполняю (я использую 32-битную версию mongo 2.6 на моей старой машине Win7. Здесь запрос выполняется> в 2 раза быстрее ~ 400 мс . не знаю, почему ' "курсор":. "BasicCursor", "isMultiKey": ложные, "п": 30, " nscannedObjects": 27772, "nscanned": 27772, "nscannedObjectsAllPlans": 27772 , "nscannedAllPlans": 27772, "scanAndOrder" ложь, "indexOnly" ложь, "nYields": 216, "nChunkSkips": 0, "Миллис": 380, "сервер": «Майк -PC: 27017 ", " filterSet ": false' – Mike