0

我有以下 mongo 集合结构

{
 "_id" : ObjectId("52204f5b24c8cbf03ca16f8e"),
 "Date" : 1377849179,
 "cpuUtilization" : 31641,
 "memory" : 20623801,
 "hostId" : "600.6.6.6"
}

在上面的集合中,我有 1000 个 hostId,每个 hostId 每 5 分钟产生一次 cpuutilization 和 memory。因此,任何人都建议我将数据放入单个集合中,或者使用 hostId 创建单独的 1000 个集合,例如集合名称为 100.1.12.2,101.2.10.1....,并且我还希望对集合进行索引以搜索记录。

4

2 回答 2

0

从您共享的结构来看,将数据放入单独的记录中将是一个明智的选择,因为内存和 cpuUtilization 总是不同的。此外,如果您将时间戳存储在日期字段中,那将总是不同的。

如果您单独存储记录,查询数据库会容易得多,并且您也可以避免使用聚合,这将通过使用适当的索引为您提供更好的查询性能。

所以你的记录应该如下所示: { "_id" : ObjectId("someID1"),"Date" : 1377849179,"cpuUtilization" : 31641,"memory" : 20623801,"hostId" : "600.6.6.6"} { " _id”:ObjectId(“someID2”),“Date”:1377849210,“cpuUtilization”:20141,“memory”:28787801,“hostId”:“600.6.6.6”}

于 2013-09-07T05:40:18.797 回答
0

一个集合足以存储信息。您必须注意的一个想法是写入性能,因为在数据库级别写入时 mongodb 锁定,写入可能会很慢。我可以给出的一个建议是拥有两个或三个数据库来保存特定主机范围的集合。它可以帮助你写得更快。从 2.2 版开始,MongoDB 在每个数据库的基础上为大多数读写操作实现锁。

于 2013-09-07T06:18:50.030 回答