Swa*_*ant 1 mongodb mongo-shell mongodb-query
我正在尝试找到对包含数百万个testdata记录的集合执行count()所需的时间,具体如下: -
1)从第一个Mongo shell我使用代码将数百万条记录插入到集合中
for (var i = 0; i < 10000000; ++i){
db.unicorns.insert({name: 'sampleName', gender: 'm', weight: '440' });
}
Run Code Online (Sandbox Code Playgroud)
2)从2ndMongo shell我试图在该集合上找到count()(Imp:插入仍然在第一个Mongo Shell上执行)
db.unicorns.count()
Run Code Online (Sandbox Code Playgroud)
我研究过但发现explain()和stats()不能应用于count()命令.
一些
我需要知道在收集插件(类似实时场景)时count()需要多少时间?
这样做还有其他好方法吗?
MongoDB有一个内置的profiller,您可以通过以下方式启用:
db.setProfilingLevel(2)
Run Code Online (Sandbox Code Playgroud)
而不是'2',您可以从下面的列表中选择任何选项:
您可以通过检查MongoDB中的system.profile集合来查看查询结果.
编辑:
如果要测试性能,可以使用以下可以从mongo控制台执行的代码片段:
> for (var i = 0; i < 10000000; ++i) { db.countTest.insert({a: i % 10}) }
> db.countTest.ensureIndex({a:1})
> db.countTest.count({a: 1})
> db.countTest.count()
> db.countTest.find().count()
Run Code Online (Sandbox Code Playgroud)
我的结论如下:
因此,您的集合拥有的索引越多,查询速度就越慢.如果按_id计算,它将是即时的,如果你有一个复合索引,它将根据索引的数量进行扩展.
| 归档时间: |
|
| 查看次数: |
3527 次 |
| 最近记录: |