Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何度量mongodb索引时间?_Mongodb - Fatal编程技术网

如何度量mongodb索引时间?

如何度量mongodb索引时间?,mongodb,Mongodb,我们可以使用 find({field:'value'}).explain() 以获取查询的“毫秒” 但如果我想知道制作索引的时间(成本)该怎么办 差不多 ensureIndex({area:1}).explain() 我可以使用mongoshell或其他更好的方法来衡量编制索引的时间吗?构建索引的成本受许多变量的影响,包括索引的复杂性、要编制索引的文档数量以及MongoDB服务器当时在做什么 没有一个explain() mongoshell有一个verbose模式,可以显示操作所需的时间。启用

我们可以使用

find({field:'value'}).explain()

以获取查询的“毫秒”

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

差不多

ensureIndex({area:1}).explain()


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

构建索引的成本受许多变量的影响,包括索引的复杂性、要编制索引的文档数量以及MongoDB服务器当时在做什么

没有一个
explain()

  • mongo
    shell有一个
    verbose
    模式,可以显示操作所需的时间。启用此选项,然后在前台生成索引:

    > set verbose true
    > db.tweets.ensureIndex({'lang':1,'protected':1})
    Inserted 1 record(s) in 262ms
    
  • Grep您的
    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
    

我真的不确定你为什么想知道这一点,除非你计划动态创建索引,这是一个非常糟糕的主意,但是,你可以使用currentOP()来查看索引器是否仍在运行。这只是出于好奇:)我不认为它会进入配置文件集合,我认为只有物理查询才会这样我认为atm的唯一方法是通过分析currentOPI也应该澄清一件事,解释中的毫秒不是查询而是解释,如果你想要查询的毫秒,你必须查看
系统。配置文件
收集谢谢,我会检查它!专业提示:如果您喜欢“verbose”shell模式,您可以在默认情况下通过添加
\u verboseShell=true来启用它到您的。