如何从MongoDB中删除system.profile集合?

时间:2014-07-23 10:30:52

标签: mongodb profiling

我在MongoDB中分析数据库查询。我关注this链接。我试图从集合system.profile中删除所有数据,以便我可以再次开始对不同的查询进行基准测试。我尝试了以下代码,但它给出了错误

CONSOLE SYNTAX

> db.system.profile.remove({})

错误

cannot delete from system namespace

如何删除该集合中的所有数据?如果那是不可能的,我怎么能从头开始分析?

3 个答案:

答案 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 })