我怎么知道find.limit(10)和aggregate({$limit:10})哪个更快更有效?我听说很多限制会影响Mongo的性能,这是真的吗,或者自从新的3.0引擎以来这已经改变了。
另外,有没有一种实用的方法来评估mongo上的查询性能?
发布于 2015-09-14 17:31:14
有几种方法可以从查询中获得执行时间和性能。首先,您可以设置db.setProfilingLevel(2),它会将所有数据库活动记录到日志中,记录每个操作所需的时间。您还可以通过在游标上运行explain()来查看数据库实际在做什么,从而从shell获得查询的性能。
db.foo.find({}).limit(10).explain()
您还可以为聚合做解释,但它似乎不会给您提供执行时间,而只是提供它所需的步骤,因此您可能必须这样做
var date = new Date()
db.foo.aggregate([
{$limit: 10}])
var time = new Date() - date;如果您感兴趣,请查看汇总说明
db.foo.aggregate([{$limit: 10}], {explain: true})
https://stackoverflow.com/questions/32560026
复制相似问题