哪种架构对性能有好处

时间:2012-10-08 07:56:47

标签: performance mongodb schema compare

我正在为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 个答案:

答案 0 :(得分:1)

当您说“读取”数据时,它可能取决于您希望执行的查询类型。您是在阅读整个文档,还是打算过滤掉性别类型并对内容执行数学函数?数组通常需要MapReduce或Aggregation框架来处理某些类型的查询。这对于大型集合来说可能是昂贵的,而处理“女性”对象的集合可以更具声明性地编写和处理。

您能详细说明您想要对数据做些什么吗?您可能会得到更明确的答案。