[컴][db] mongodb 성능 분석, MongoDB Profiler and explain()

 몽고db분석 / 빠르게 / 성능 분석/ profiler /

mongodb 성능 분석, MongoDB Profiler and explain()

db.getProfilingStatus()

db.getProfilingLevel()
db.setProfilingLevel(1)
  • level 0 : 아무런 data 도 수집하지 않는다. 이것이 default 값이다.
  • level 1 : slowms 값보다 오래 걸리는 query 에 대한 data 를 수집한다.
  • level 2 : 모든 operation 에 대한 data 를 수집한다.
db.system.profile.find({
"command.pipeline": { $exists: true }
}, {
"command.pipeline":1
}).sort({$natural:-1}).pretty();

COLLSCAN 을 하는 모든 query 들

// all queries that do a COLLSCAN
db.system.profile.find({"planSummary":{$eq:"COLLSCAN"},
"op" : {$eq:"query"}}).sort({millis:-1})

range scan 또는 full scan 을 하는 query 들

db.system.profile.find({"nreturned":{$gt:1}})

가장느린 query 중 상위 10 개

// 가장느린 query 중 상위 10 개
db.system.profile.find({"op" : {$eq:"query"}}, {
"query" : NumberInt(1),
"millis": NumberInt(1)
}
).sort({millis:-1},{$limit:10}).pretty()


// 가장느린 10개의 aggregation 들
// the source of the top ten slowest commands/aggregations
db.system.profile.find({"op" : {$eq:"command"}}, {
"command.pipeline" : NumberInt(1),
"millis": NumberInt(1)
}
).sort({millis:-1},{$limit:10}).pretty()

10ms 이상 걸리는 query

//find all queries that take more than ten milliseconds, in descending order, 
displaying both queries and aggregations
db.system.profile.find({"millis":{$gt:10}}) .sort({millis:-1})

See Also

  1. MongoDB Aggregation Pipeline | MongoDB
  2. Aggregation Pipeline Optimization — MongoDB Manual

댓글 없음:

댓글 쓰기