当我分析mongodb时删除查询意味着什么

时间:2011-03-28 15:27:23

标签: mongodb profiling

{ "ts" : "Mon Mar 28 2011 23:12:25 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"aae7942d-0a61-4d08-8507-f92c7eebee7f\" } 403ms", "millis" : 403 }
{ "ts" : "Mon Mar 28 2011 23:11:15 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"0b973bcb-52fa-4709-a9bc-47841e51a5ab\" } 171ms", "millis" : 171 }
{ "ts" : "Mon Mar 28 2011 23:11:10 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"0c352958-bcd8-4e28-b9cd-7e7534580eac\" } 223ms", "millis" : 223 }
{ "ts" : "Mon Mar 28 2011 23:11:07 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"0c35c0e5-3460-4192-9094-e4d0fa623470\" } 224ms", "millis" : 224 }
{ "ts" : "Mon Mar 28 2011 23:11:06 GMT+0800 (CST)", "info" : "remove  query: { roleid: \"2d1dedfe-e587-4444-9b3a-3691a4c47fde\" } 18ms", "millis" : 18 }
{ "ts" : "Mon Mar 28 2011 23:11:01 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"ee3bbc78-def4-4b96-8db7-1dd12443707a\" } 325ms", "millis" : 325 }
{ "ts" : "Mon Mar 28 2011 23:10:44 GMT+0800 (CST)", "info" : "remove  query: { taskid: \"7d0d7433-4954-4355-adfa-5af2fd2c3b06\" } 357ms", "millis" : 357 }

我在使用数据库分析时经常看到它,而taskid是集合的索引

我设定: db.setProfilingLevel(1,50) 然后我调查了一下 db.system.profile.find()排序。(TS:-1).limit(20)

我看到很多可怕的长时间执行 {“ts”:“2011年3月28日星期一20:42:39 GMT + 0800(CST)”,“信息”:“删除 查询:{taskid:\“495951f5-8042-4a7a-9f09-f65c9e622e28 \”} 361ms“, “millis”:361}

但目前我的申请没有遇到异常缓慢或延迟。

所以我只是想知道为什么这么久以及那是什么

这是我的表状态

> db.role_task.stats() 


{ 
        "ns" : "dt_base.role_task", 
        "count" : 17907, 
        "size" : 66267932, 
        "avgObjSize" : 3700.6719160104985, 
        "storageSize" : 86088960, 
        "numExtents" : 11, 
        "nindexes" : 3, 
        "lastExtentSize" : 20872448, 
        "paddingFactor" : 1.4199999999985065, 
        "flags" : 1, 
        "totalIndexSize" : 5496832, 
        "indexSizes" : { 
                "_id_" : 761856, 
                "taskid_1" : 1753088, 
                "roleid_1_taskdbid_1" : 2981888 
        }, 


"ok" : 1 

}

1 个答案:

答案 0 :(得分:1)

删除通常很慢(依赖于磁盘速度),除非您的数据库严重依赖它们,否则不应该担心。 MongoDB的默认操作是在后台运行此删除操作,并允许您的其他操作同时执行。这就是为什么你没有看到明显的减速。

来自文档:

  

v1.3 +支持删除运行时的并发操作。如果同时更新(在同一集合上)增加了与删除标准匹配的对象,则可能不会删除更新的对象(因为操作几乎在同一时间发生,这甚至可能不令人惊讶)。在不希望出现这种情况的情况下,请在过滤器表达式中传递{$ atomic:true}: