sql >> データベース >  >> NoSQL >> MongoDB

最高の挿入/秒のパフォーマンスを備えたDB?

    内部にバグがあった上記のベンチマークは無視してください。

    次の列を持つInsert1Mレコードがあります:id(int)、status(int)、message(140 char、random)。すべてのテストは、500GBのSATAディスクを搭載したデスクトップPCi5のC++ドライバーで実行されました。

    MongoDBによるベンチマーク :

    1Mレコード挿入インデックスなし

    time: 23s, insert/s: 43478
    

    1Mレコード挿入インデックス付き IDで

    time: 50s, insert/s: 20000
    

    次に、インデックスと100万レコードを使用して同じテーブルに100万レコードを追加します

    time: 78s, insert/s: 12820
    

    そのすべてがfsで4GB近くのファイルになります。

    MySQLによるベンチマーク :

    1Mレコード挿入インデックスなし

    time: 49s, insert/s: 20408
    

    1Mレコード挿入インデックス付き

    time: 56s, insert/s: 17857
    

    次に、インデックスと100万レコードを使用して同じテーブルに100万レコードを追加します

    time: 56s, insert/s: 17857
    

    まったく同じパフォーマンス、成長時にmysqlを失うことはありません

    このテスト中にMongoが約384MBのRAMを消費し、CPUの3コアをロードしたことがわかります。MySQLは、14 MBに満足し、1コアのみをロードしました。

    Edorianは彼の提案で正しい方向に進んでいました。私はもう少しベンチマークを行い、2xクアッドコアサーバー50Kインサート/秒で到達できると確信しています。

    MySQLが正しい道だと思います。



    1. マングース検証エラーの処理–どこでどのように?

    2. Mongoid/Mongodbおよび埋め込みドキュメントのクエリ

    3. MongoDBドキュメントとコレクションを視覚的に管理する

    4. このスキーマをMongoDBに実装するにはどうすればよいですか?