我是一名MongoDB新手并且开发了一个应用程序,它可以保存大量日志(每天约900万)。
应用程序跟踪有200,000台设备,我计划将每台设备的日志保存为(其中_id是deviceID):
{
"_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的优势。
我愿意接受任何建议,以找到最佳的读/写性能。太多了。