我在MongoDB中分析数据库查询。我关注this链接。我试图从集合system.profile中删除所有数据,以便我可以再次开始对不同的查询进行基准测试。我尝试了以下代码,但它给出了错误
CONSOLE SYNTAX
> db.system.profile.remove({})
错误
cannot delete from system namespace
如何删除该集合中的所有数据?如果那是不可能的,我怎么能从头开始分析?
答案 0 :(得分:85)
首先,通过将其级别设置为0来关闭性能分析。
db.setProfilingLevel(0)
然后你可以简单地删除该集合。
db.system.profile.drop()
现在你可以自由地开始了它。
答案 1 :(得分:17)
要想接受已接受的答案,有时候只需一行就可以了:
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);
答案 2 :(得分:1)
请记住,个人资料集被限制!
为了创建一个保存更多有关查询记录的集合,请以所需的大小重新创建它。
db.setProfilingLevel(0)
db.system.profile.drop()
db.createCollection( "system.profile", { capped: true, size: 1024*1024*10 } )
db.setProfilingLevel(1, { slowms: 500 })