検索

ホームページ  >  に質問  >  本文

nosql - MongoDB的MR问题!

听说mongodb的MapReduce是单线程的,性能很差,这是怎么回事?差到什么程度呢??有哪位大侠能说说原理。

怪我咯怪我咯2804日前814

全員に返信(3)返信します

  • PHP中文网

    PHP中文网2017-04-21 11:18:15

    内部の実行がシングルスレッドかどうかはわかりませんが、本番環境の場合は、毎回mapReduceの結果に直接アクセスしないことが最善です。データのサイズによっては、それでも一定の時間がかかります。時間の長さ。データは数千万件あり、mapReduce の各実行には約 5 ~ 6 秒かかります。幸いなことに、アプリケーションはあまりリアルタイムではありません。 したがって、基本的にデータは 2 時間キャッシュされ、その後、mapReduce が実行されて最新の結果が取得されます。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-21 11:18:15

    この記事では mongodb のパフォーマンスの問題について説明すると思います!
    http://stackoverflow.com/questions/39...

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:18:15

    MapReduce を使用する前に同様のことを行っていましたが、時間がかかるため、後で統計に集計クエリを使用するように変更しました。具体的な例は次のとおりです。 リーリー

    基本的なドキュメントモデルは上記の通りで、accountIdとタグにインデックスを付けました

    リーリー

    ここで、ユーザーの下のタグをカウントする必要があります。MapReduce は次のように設計されています。 リーリー

    結果:

    リーリー

    上記のテストを実行するために少量のデータ 10W を使用しただけで、次のような結果が得られたようです。

    リーリー

    私のモックのデータは比較的単純で規則的であるため、計算の数はスキャンされたドキュメントの数のほぼ 2 倍であることがわかります。その後、テストにランダムなデータを使用したところ、結果はさらに悪かったことがわかりました。 MapReduce の実装を諦め、他の方法に切り替えました。

    返事
    0
  • キャンセル返事