mongoDB 以微秒为单位获取查询的执行时间
Posted
技术标签:
【中文标题】mongoDB 以微秒为单位获取查询的执行时间【英文标题】:mongoDB get execution time of a query in microseconds 【发布时间】:2014-05-28 17:40:20 【问题描述】:我应该得到 mongoDB 中查询的执行时间。使用 explain() 我注意到它是零毫秒。那么,在 mongoDB 中是否可以通过简单的方式获取以微秒为单位的查询的执行时间呢? 例如,如果我想计算 10k 个测试查询样本的均值和方差(每个查询持续微秒),我该怎么做? 我正在使用 php。
【问题讨论】:
【参考方案1】:参考这些链接,它们可能对您有所帮助
Track MongoDB performance?
http://docs.mongodb.org/manual/tutorial/manage-the-database-profiler/
【讨论】:
第二个链接是关于profiling;第一个链接是关于 explain() (以毫秒为单位返回时间)以及分析。后者允许我记录其他信息,例如:锁定和解锁时间、执行时间(以毫秒为单位)等。两个问题:(i)查询的执行时间是这些锁定时间的总和吗? (ii) 如果我执行 n 次查询,配置文件将只记录很少。为什么? ans (i):执行时间不包括锁定时间,请参考docs.mongodb.org/manual/reference/database-profiler并检查system.profile.lockStats.timeLockedMicros。 Ans(ii)db.system.profile.find() 应该显示所有记录【参考方案2】:在这里回答 https://***.com/a/14022199/5374951
var before = new Date()
#aggregation query
var after = new Date()
execution_mills = after - before
或者
d = new Date; db.coll.aggregate(...);
print(new Date - d + 'ms')
【讨论】:
以上是关于mongoDB 以微秒为单位获取查询的执行时间的主要内容,如果未能解决你的问题,请参考以下文章