我们可以使用
db.phones.find({field:'value'})。explain()
获取查询的'millis'。
但如果我想知道制作索引的时间(成本)
,该怎么办?类似
db.phones.ensureIndex({面积:1})。解释()
我可以使用mongoshell或其他更好的方法来衡量制作索引的时间吗?
答案 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