Подтвердить что ты не робот

Отслеживать производительность MongoDB?

Есть ли способ отслеживать производительность запроса в MongoDB? Специально проверяющие индексы или поддокументы?

В sql вы можете запускать запросы, просматривать время выполнения и другие аналитические показатели.

У меня есть огромная коллекция mongoDB и вы хотите попробовать разные варианты и индексы, не уверенные, как их протестировать, было бы неплохо увидеть, сколько времени потребовалось, чтобы найти запись. (Я новичок в MongoDB). Благодаря

4b9b3361

Ответ 1

Здесь есть две вещи, которые вы, вероятно, будете знать.

  • Объясните планы.
  • Медленные журналы

Объяснить планы

Ниже приведены некоторые основные документы. Выполнение объяснения так же просто, как db.foo.find(query).explain(). (обратите внимание, что это действительно запускает запрос, поэтому, если ваш запрос медленный, это тоже будет)

Чтобы понять вывод, вам нужно будет проверить некоторые документы в медленных журналах ниже. Вам в основном дается подробная информация о том, "сколько индексов было проверено", "сколько найдено" и т.д. Как и в случае с такими характеристиками производительности, интерпретация действительно зависит от вас. Прочтите документы выше и ниже, чтобы указать вам в правильном направлении.

Медленные журналы

По умолчанию медленные журналы активны с порогом в 100 мс. Здесь ссылка на полную документацию по профилированию. Несколько ключевых моментов, которые помогут вам начать:

Получить/задать профилирование:

db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();

Смотрите медленные запросы:

db.system.profile.find()