4

我是一名 MongoDB 新手,正在开发一个可以保存大量日志(每天约 900 万)的应用程序。

该应用程序跟踪了 200,000 台设备,我计划将每个设备的日志保存为(其中 _id 是设备 ID):

{
  "_id" : 6,
  "r" : [{
      "t" : 980,
      "dt" : 123432534543543.0
    }, {
      "t" : 980,
      "dt" : 123432534543543.0
    }, {
      "t" : 980,
      "dt" : 123432534543543.0
    }]
}

通过使用 $push 更新数组(也使用 upsert)。

但是,这种方法似乎存在性能问题(人们说,更新数组不是一个好主意)。

或者,我可以将每个日志添加为新文档,例如:

{
  "monitorID" : 6,
  "t" : 980,
  "d" : 123432534543543.0,
  "_id" : ObjectId("523ff7c0d43023200f000001")
}

但是,我将不得不为 monitorID 添加一个索引并搜索数百万条日志而不是 200,000 条。而且,像这样保存数据听起来像是保存在 MySQL 中,没有 NoSQL 的优势。

我愿意接受任何建议以找到最佳读/写性能。非常感谢。

4

0 回答 0