MongoDB database profiler — это встроенный диагностический инструмент, который собирает детальную информацию об операциях с базой данных, включая чтения, записи и административные команды. Его главная цель — помочь разработчикам и администраторам выявить узкие места в производительности и оптимизировать эффективность запросов.
Профайлер работает на трёх уровнях, которые настраиваются с помощью db.setProfilingLevel():
100ms)db.setProfilingLevel(1, { slowms: 50 })
В этом примере включается уровень 1 профилирования и устанавливается порог медленных операций на 50ms.
Результаты профилирования сохраняются в ограниченной коллекции system.profile и могут быть запрошены напрямую:
db.system.profile.find().sort({ millis: -1 }).limit(10)
Ключевые поля для анализа:
millis — общее время выполнения в миллисекундахnreturned — количество возвращённых документовdocsExamined — количество просканированных документовplanSummary — показывает, был ли использован индексВысокое значение docsExamined относительно nreturned указывает на отсутствующий или неэффективный индекс, что является частой возможностью для оптимизации.
createIndex() там, где нужно, чтобы ускорить медленные запросыПрофайлер базы данных MongoDB на уровне 2 можно безопасно включать в production-среде, потому что он логирует только операции, превышающие порог медленного запроса.
Новый — ещё не проверен сообществом
Вы