検索

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

mongodb - pymongo カウントが遅い

30,000 個のデータ。各データには乱数が 1 つだけ含まれています。{"数字": 乱数}
要件: 最も頻繁に出現する数値を数えます
データベース テーブル table

リーリー

1 回の実行には約 5 ~ 6 分かかります。マルチスレッドを使用して 100 回実行してもそれほど高速ではなく、ファンの音が非常にうるさいです...
正しい姿勢は何ですか?

PHPzPHPz2789日前1248

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

  • 迷茫

    迷茫2017-05-17 10:05:55

    正しい姿勢は集約を使用することです。

    リーリー

    $group のユーザーはドキュメントを参照できます。
    なお、このような需要が現実に現れる可能性は高くないと推定されます。実際、Aggregatoin を使用した場合でも、最も頻繁に発生する数値を見つけるには、コレクション全体のすべてのデータを走査する必要があるため、コレクション内のレコードの総数が比較的大きい場合には、このようなテーブル全体の走査操作が必要になります。この種の検索方法は通常、OLAP シナリオでのみ使用でき、OLAP には通常、高速性の要件はありません。したがって、理論的な議論からのみ、集計フレームワークを使用する必要がありますが、実際のニーズには依然として詳細な分析が必要です。

    返事
    0
  • キャンセル返事