使用$sum加總時的效能問題請教


  • 註冊用戶

    如果有一個collection大部份的欄位都需要做數值加總,比如有20個欄位,可能其中有17個欄位都要加總(各欄位分別加總),是要把這些欄位都加上index加快效能嗎?

    假設collection欄位是 _id, A, B, C,那要加索引是要A, B, C各別與_id搭配才能加快效能嗎?

    但這樣的做法感覺反而要浪費更多的空間來儲存index,或者有其它更好的做法?


  • 註冊用戶

    建議定時統計放到另外的collection,再加索引會比較好


  • Lv 1

    @Cain 對要加總的欄位設計index沒什麼意義~~~應該是要對"按什條件分類加總"的欄位加index才會有幫助,比如我們要統計全國每個年級的學生數,可能需要在"年級"欄位加索引,因為是以年級為"條件"做分類,不會在其他欄位考慮~ 不過一般索引是針對在查詢語句中.find()裡面的條件來設計

    以上是我的認知~若有錯誤再請高手指正~~ : P


  • 註冊用戶

    @Jasonchang

    你舉的例子只是做針對挑選符合的資料做count而已,這當然是對"年級"欄位做索引即可。

    我這邊提到的是要對選取到的資料做加總,應該是不一樣的。比如我要算某班級的人"國文"分數加總,用RDB的思維來看,我應該要用"班級+國文分數"做索引,才能讓他最快速取到資料做計算,不知這樣的理解對不對?


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待