2012-10-08 20 views
1

我正在爲MongoDB創建模式,我有Gender集合的兩種模式類型。我想知道哪一個會更好的閱讀數據(收集可能包含數百萬條記錄,所以我現在不能實際評估,所以請不要試着說「試用樣本數據」)哪個模式會對性能有好處

一個是陣列類型:

"gender": [{ 
      "GenderType":M/F/U, 
      "total:logins": 12, 
      "totaluser": 20, 
      "newuser": 11 
    }, 
    { 
      "GenderType":M/F/U, 
      "total:logins": 12, 
      "totaluser": 20, 
      "newuser": 11 
    }, 
    { 
      "GenderType":M/F/U, 
      "total:logins": 12, 
      "totaluser": 20, 
      "newuser": 11 
    } 
] 

秒是對象類型。

"gender": { 
    "male": { 
      "total:logins": 12, 
      "totaluser": 20, 
      "newuser": 11 
    }, 
    "female": { 
      "total:logins": 11, 
      "totaluser": 10, 
      "newuser": 10 
    } 
    "unknown": { 
      "total:logins": 11, 
      "totaluser": 10, 
      "newuser": 10 
    } 
} 

重點

  1. 性能
  2. 寄存
  3. 可維護性

回答

1

當你說 「讀書」 的數據,這可能取決於您要執行的查詢類型。你是否總是閱讀整篇文檔,或者你打算過濾掉性別類型並對內容執行數學函數?數組通常需要MapReduce或Aggregation框架來處理某些類型的查詢。這對於大型集合來說可能是昂貴的,而對「女性」對象集合的處理可以更加聲明地編寫和處理。

你能說說你想用數據做什麼嗎?你可能會得到更確切的答案。