DBAtlas · Атлас эксплуатации баз данных

Анализ плана запроса с реальной статистикой выполнения (explain executionStats)

MongoDBПроизводительность

Команда

db.musteri.find({ sehir: "Ankara", durum: "aktif" }).sort({ kayitTarihi: -1 }).explain("executionStats")
// Summary: winning plan, returned documents, examined keys/documents and time
const e = db.musteri.find({ sehir: "Ankara", durum: "aktif" }).sort({ kayitTarihi: -1 }).explain("executionStats");
({ plan: e.queryPlanner.winningPlan, n: e.executionStats.nReturned, keys: e.executionStats.totalKeysExamined, docs: e.executionStats.totalDocsExamined, ms: e.executionStats.executionTimeMillis })
// For an aggregation:
db.musteri.explain("executionStats").aggregate([{ $match: { sehir: "Ankara" } }, { $group: { _id: "$durum", n: { $sum: 1 } } }])

Что делает

Выполняет запрос и показывает выигравший план (IXSCAN/COLLSCAN, стадия SORT), число возвращённых документов, просмотренных ключей индекса и документов, а также затраченное время.

Когда использовать

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

Внимание

executionStats реально выполняет запрос; explain тяжёлого запроса в пиковое время тоже добавляет нагрузку. Для команд записи (update/delete/findAndModify) explain не изменяет данные, но выполняет план. Высокое соотношение totalDocsExamined/nReturned или стадия SORT в памяти в плане означают, что индекс не подходит.

Открыть в DBAtlas →

Связанные материалы