听说mongodb的MapReduce是单线程的,性能很差,这是怎么回事?差到什么程度呢??有哪位大侠能说说原理。
走同样的路,发现不同的人生
内部の実行がシングルスレッドかどうかはわかりませんが、本番環境の場合は、毎回mapReduceの結果に直接アクセスしないことが最善です。データのサイズによっては、それでも一定の時間がかかります。時間の長さ。データは数千万件あり、mapReduce の各実行には約 5 ~ 6 秒かかります。幸いなことに、アプリケーションはあまりリアルタイムではありません。 したがって、基本的にデータは 2 時間キャッシュされ、その後、mapReduce が実行されて最新の結果が取得されます。
この記事では mongodb のパフォーマンスの問題について説明すると思います! http://stackoverflow.com/questions/39...
MapReduce を使用する前に同様のことを行っていましたが、時間がかかるため、後で統計に集計クエリを使用するように変更しました。具体的な例は次のとおりです。 リーリー
リーリー
結果:
上記のテストを実行するために少量のデータ 10W を使用しただけで、次のような結果が得られたようです。
私のモックのデータは比較的単純で規則的であるため、計算の数はスキャンされたドキュメントの数のほぼ 2 倍であることがわかります。その後、テストにランダムなデータを使用したところ、結果はさらに悪かったことがわかりました。 MapReduce の実装を諦め、他の方法に切り替えました。
内部の実行がシングルスレッドかどうかはわかりませんが、本番環境の場合は、毎回mapReduceの結果に直接アクセスしないことが最善です。データのサイズによっては、それでも一定の時間がかかります。時間の長さ。データは数千万件あり、mapReduce の各実行には約 5 ~ 6 秒かかります。幸いなことに、アプリケーションはあまりリアルタイムではありません。 したがって、基本的にデータは 2 時間キャッシュされ、その後、mapReduce が実行されて最新の結果が取得されます。
この記事では mongodb のパフォーマンスの問題について説明すると思います!
http://stackoverflow.com/questions/39...
MapReduce を使用する前に同様のことを行っていましたが、時間がかかるため、後で統計に集計クエリを使用するように変更しました。具体的な例は次のとおりです。 リーリー
基本的なドキュメントモデルは上記の通りで、accountIdとタグにインデックスを付けましたリーリー
ここで、ユーザーの下のタグをカウントする必要があります。MapReduce は次のように設計されています。 リーリー結果:
リーリー上記のテストを実行するために少量のデータ 10W を使用しただけで、次のような結果が得られたようです。
リーリー私のモックのデータは比較的単純で規則的であるため、計算の数はスキャンされたドキュメントの数のほぼ 2 倍であることがわかります。その後、テストにランダムなデータを使用したところ、結果はさらに悪かったことがわかりました。 MapReduce の実装を諦め、他の方法に切り替えました。