Здесь есть две вещи, с которыми вы, вероятно, будете знакомы.
- Объяснить планы
- Медленные журналы
Объяснить планы
Вот несколько основных документов , которые можно объяснить. Запуск объяснения так же прост, как db.foo.find(query).explain()
. ( обратите внимание, что это на самом деле выполняет запрос, поэтому, если ваш запрос медленный, это тоже будет )
Чтобы понять вывод, вам нужно проверить некоторые документы в медленных журналах ниже. В основном вам сообщают подробности о том, «сколько индекса было отсканировано», «сколько найдено» и т. Д. Как и в случае с такими деталями производительности, интерпретация действительно зависит от вас. Прочитайте документы выше и ниже, чтобы указать правильное направление.
Медленные журналы
По умолчанию медленные журналы активны с порогом 100 мс. Вот ссылка на полную документацию по профилированию. Несколько ключевых моментов, с которых можно начать:
Получить / установить профилирование:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
См. Медленные запросы:
db.system.profile.find()