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