我是MongoDB的新手。我寫了一個JS查詢,我在mongo shell中運行。極慢的mongoDB查詢
基本上,我有兩張桌子。兩者都有近16萬條記錄。
我在遍歷第一個表和每個記錄,轉到第二個表來查找是否存在相應的記錄。
pbp = db.poss_pbp.find().batchSize(1000)
while(pbp.hasNext()){
pbp_temp = pbp.next();
id = (pbp_temp["poss_idx"]);
opt_temp = db.poss_opt.find({"poss_idx": id}).count()
if(opt_temp == 0)
{
//Do something
}
}
查詢運行速度非常慢(每1000條記錄約4-5分鐘)。我能做些什麼來使其工作更快?密鑰「poss_idx」在數據庫中有一個索引。
您可能正在造成(等同於)掃描。如果你只關心存在,你可能想要檢查http://stackoverflow.com/questions/8389811/how-to-query-mongodb-to-test-if-an-item-exists。他們似乎認爲'計數'是一個相當緩慢的操作。 – Mitch
如果它只有「160,000條記錄」,那麼您可能需要立即撤回所有的poss_idx'標識符(只需獲取這些標識符),然後在內存中進行本地比較。 – WiredPrairie