如何衡量mongodb指数时间?

时间:2013-12-23 08:34:21

标签: mongodb

我们可以使用

  

db.phones.find({field:'value'})。explain()

获取查询的'millis'。

但如果我想知道制作索引的时间(成本)

,该怎么办?

类似

  

db.phones.ensureIndex({面积:1})。解释()

我可以使用mongoshell或其他更好的方法来衡量制作索引的时间吗?

1 个答案:

答案 0 :(得分:0)

构建索引的成本受许多变量的影响,包括索引的复杂性,要​​索引的文档量以及MongoDB服务器当时正在做的其他事情。

没有explain()等价来估算成本,但是你可以清楚地了解构建初始索引的时间:

  • mongo shell有一个verbose模式,可以显示操作需要多长时间。启用此选项,然后在前台构建索引:

    > set verbose true
    > db.tweets.ensureIndex({'lang':1,'protected':1})
    Inserted 1 record(s) in 262ms
    
  • 为您的mongod日志提供“构建索引”以查看正在构建的索引(前景或背景)以及相关的时间:

    > grep "build index" /path/to/mongodb.log
    
    Wed Jan  1 12:45:05.102 [conn3] build index twitter.tweets { lang: 1.0, protected: 1.0 }
    Wed Jan  1 12:45:05.363 [conn3] build index done.  scanned 51428 total records. 0.26 secs