私は 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 の利点はありません。
最高の読み取り/書き込みパフォーマンスを見つけるための提案をお待ちしています。どうも。