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