Тук има две неща, с които вероятно ще сте запознати.
- Обяснете плановете
- Бавни журнали
Обяснете плановете
Ето някои основни документи за обяснение. Изпълнението на обяснението е толкова просто като db.foo.find(query).explain()
. (обърнете внимание, че това всъщност изпълнява заявката, така че ако заявката ви е бавна, това също ще бъде )
За да разберете изхода, ще искате да проверите някои от документите в бавните регистрационни файлове по-долу. По принцип ви се дават подробности за „колко индекс е сканиран“, „колко са намерени“ и т.н. Както е в случая с подобни подробности за изпълнението, интерпретацията наистина зависи от вас. Прочетете документите по-горе и по-долу, за да ви насочат в правилната посока.
Бавни регистрационни файлове
По подразбиране бавните журнали са активни с праг от 100 ms. Ето линк към пълната документация за профилирането. Няколко ключови точки, за да започнете:
Вземете/Задайте профилиране:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
Вижте бавни заявки:
db.system.profile.find()