我正在对MongoDB数据库的查询进行性能分析。我遵循了这个链接。我试图删除集合system.profile中的所有数据,以便再次开始对不同查询进行基准测试。我尝试了以下代码,但是它会报错。
控制台语法
> db.system.profile.remove({})
错误
cannot delete from system namespace
如何删除该集合中的所有数据?如果不可能,如何从头开始进行分析?
首先,通过将其级别设置为0来关闭分析。
db.setProfilingLevel(0)
然后你可以简单地删除该集合。
db.system.profile.drop()
现在你可以自由地去重新开始。
db.setProfilingLevel(0); db.system.profile.drop(); db.setProfilingLevel(2);
我也发现将system.profile的大小设置为10MB(或更大),而不是其默认值1MB,非常有帮助:
db.setProfilingLevel(0); db.system.profile.drop(); db.createCollection("system.profile", {capped: true, size: 10 * 1024 * 1024}); db.setProfilingLevel(2);
请注意,配置文件的数量是有限制的!
为了创建一个保存更多查询记录的集合,请重新创建具有所需大小的集合。
db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection( "system.profile", { capped: true, size: 1024*1024*10 } )
db.setProfilingLevel(1, { slowms: 500 })