PHP中文网2017-04-21 11:18:15
内部の実行がシングルスレッドかどうかはわかりませんが、本番環境の場合は、毎回mapReduceの結果に直接アクセスしないことが最善です。データのサイズによっては、それでも一定の時間がかかります。時間の長さ。データは数千万件あり、mapReduce の各実行には約 5 ~ 6 秒かかります。幸いなことに、アプリケーションはあまりリアルタイムではありません。 したがって、基本的にデータは 2 時間キャッシュされ、その後、mapReduce が実行されて最新の結果が取得されます。
ringa_lee2017-04-21 11:18:15
この記事では mongodb のパフォーマンスの問題について説明すると思います!
http://stackoverflow.com/questions/39...
伊谢尔伦2017-04-21 11:18:15
MapReduce を使用する前に同様のことを行っていましたが、時間がかかるため、後で統計に集計クエリを使用するように変更しました。具体的な例は次のとおりです。 リーリー
基本的なドキュメントモデルは上記の通りで、accountIdとタグにインデックスを付けましたリーリー
ここで、ユーザーの下のタグをカウントする必要があります。MapReduce は次のように設計されています。 リーリー結果:
リーリー上記のテストを実行するために少量のデータ 10W を使用しただけで、次のような結果が得られたようです。
リーリー私のモックのデータは比較的単純で規則的であるため、計算の数はスキャンされたドキュメントの数のほぼ 2 倍であることがわかります。その後、テストにランダムなデータを使用したところ、結果はさらに悪かったことがわかりました。 MapReduce の実装を諦め、他の方法に切り替えました。