0

データベースに単純なデータ (10 列の 1 つのテーブル) を挿入する必要があります。問題は、毎秒 200,000 レコードを挿入する必要があることです。私のコンピューターは、96GB RAM と 300T NAS ドライブを搭載した HP サーバーです。この挿入率についてはわかりません。

Mongodbについて聞いたことがあります。私を正しい道に導いてくれませんか?

4

1 に答える 1

3

ここでは Mongo が適している可能性がありますが、1 秒あたり 200k という数字は大きいため、何を使用する場合でも慎重な設計が必要になると思います。

  • 200kps * 300 バイト/ドキュメント = 60MBps -> ~600Mbps -> ギガビット イーサネット アダプターの飽和に近い。注目すべきことです。

  • このような場合、フィールド名は各ドキュメントの BSON に存在するため、短くしてください。

  • _id フィールドは、_id インデックス全体が RAM にある必要がないように、(ほぼ) 単調に増加する必要があります。これは、BSON ObjectIds が行うため、デフォルトで true になります。さらにインデックスを追加すると、1 台のサーバーで 200K に到達できない可能性があります。おそらくSSDで行うことができます。

  • 1 つのサーバーで mongo を使用して 1 秒あたり 200K に達するかどうかはわかりません。100K はかなり簡単なはずです。ボックスの速度に依存します。もちろん、シャードする場合は、複数のマシンで毎秒 200K を実行できます。

  • これらの小さな行をアプリケーションにとって意味のある大きなドキュメントにまとめる方法はありますか? これを行うと、より高いスループットが得られます。たとえば、これらの行の 10 に相当する行で構成される 1 つのドキュメントは、単一の挿入になり、_id インデックスに単一のキーを持ちます。

于 2012-09-15T16:01:45.313 に答える