2011-03-28 62 views
0
{ "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 } 

我經常看到它在使用數據庫分析我和任務id是集合的指數什麼呢刪除查詢時,我剖析MongoDB的

我設置的意思是: db.setProfilingLevel(1,50) 然後我期待到 db.system.profile.find()排序(TS:-1)。.limit(20)

我看到了很多可怕的執行長像 { 「TS」:「 Mon Mar 28 2011 20:42:39 GMT + 0800(CST)「,」info「:」刪除 查詢:{taskid:\「495951f5-8042-4a7a-9f09-f65c9e622e2 8 \「} 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

移除了往往是緩慢的(依靠磁盤速度),不應該除非您的數據庫嚴重依賴於它們,否則您應該關注它MongoDB的默認操作是在後臺運行此刪除操作,並允許其他操作同時進行。這就是爲什麼你沒有看到明顯的減速。

從文檔:

V1.3 +支持併發操作而刪除運行。如果同時更新(在同一個集合上)增長了與刪除條件匹配的對象,則更新後的對象可能不會被刪除(因爲操作幾乎在同一時間發生,這可能不會令人意外)。在不希望出現的情況下,請在您的過濾器表達式中傳遞{$ atomic:true}: