【问题标题】:mongoDB get execution time of a query in microsecondsmongoDB 以微秒为单位获取查询的执行时间
【发布时间】:2014-05-28 17:40:20
【问题描述】:

我应该得到 mongoDB 中查询的执行时间。使用 explain() 我注意到它是零毫秒。那么,在 mongoDB 中是否可以通过简单的方式获取以微秒为单位的查询的执行时间呢? 例如,如果我想计算 10k 个测试查询样本的均值和方差(每个查询持续微秒),我该怎么做? 我正在使用 PHP。

【问题讨论】:

    标签: php mongodb time execution


    【解决方案1】:

    【讨论】:

    • 第二个链接是关于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://stackoverflow.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')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2022-06-28
      • 1970-01-01
      • 2011-11-24
      • 2014-06-24
      • 2016-12-14
      相关资源
      最近更新 更多