$match
集約されるコレクションを制限する初期パイプラインがある場合は、集約フレームワークが適していることを私は知っています。ただし、フィルタリングされたコレクションがまだ大きい場合があります。たとえば、約200万であり、集計にはが含まれ$group
ます。結果を最大5秒で出力する必要がある場合、集約フレームワークはそのようなコレクションで機能するのに適していますか?現在、私は単一のノードで作業しています。シャードセットで集計を実行すると、パフォーマンスが大幅に向上します。
質問する
370 次
1 に答える
1
私の知る限り、唯一の制限は、集計の結果が16MBの制限を超えることができないことです。これは、返されるのがドキュメントであり、これがMongoDBのドキュメントの制限サイズであるためです。また、マシンの合計メモリの10%を超えて使用することはできません。通常、$ matchフェーズは使用するセットを減らすために使用され、$projectフェーズはドキュメントあたりのデータを減らすために使用されます。
$groupまたは$sortフェーズの後のシャード環境では、パイプラインの次のフェーズに送信する前に、集約がMongoSに戻されることに注意してください。MongoSがアプリケーションと同じマシンで実行されている可能性があり、正しく処理されないとアプリケーションのパフォーマンスが低下する可能性があります。
于 2013-02-22T08:46:12.293 に答える