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 以微秒为单位获取查询的执行时间的主要内容,如果未能解决你的问题,请参考以下文章

从 unix 时间戳获取 ISOString(以微秒为单位)

如何以毫秒为单位显示 ssms 的执行时间?

进程线程day1

java中的当前时间(以微秒为单位)

c_cpp 以微秒为单位测量时间

有啥办法可以在 STM32 CubeIDE 中以微秒为单位进行延迟?