0

私はmongoを初めて使用するため、SQL構文を許しますが、同等のことをした場合

SELECT count(*) FROM table WHERE indexed_field=val

MongoDB では、O(1) 時間または O(N) 時間 (N は一致数) で実行されますか? このコミットに基づくと、答えは O(N)であり、パフォーマンスが 20 倍しか向上しないという事実(カウントを維持することははるかに大きい) であると思われますが、よくわかりません。

大きなカウントのカウントをキャッシュする必要があるかどうか疑問に思っています。答えはイエスのようです。

4

1 に答える 1

1

MongoDB インデックスは現在、インデックス (またはコレクション) ごとにカウントを格納しません。それらが一意のインデックスであるか非一意のインデックスであるかに違いはありません。MongoDB がドキュメントの数を確認するには、O(N) で動作するインデックス トラバーサルを実行する必要があります。

于 2013-07-16T07:56:58.230 に答える