8

あたかもケーキであるかのように、どこでも ObjectIds を検索しています。

これでよろしいですか?_idフィールドは狂ったように検索されるはずですよね?

4

4 に答える 4

9

より正確な答え: MongoDB は B-Tree インデックスを使用します。B-Tree での特定の値の検索は、平均および最悪の場合で O(log n) の複雑さを持ち、かなり高速であると見なすことができます (つまり、バイナリ検索)。ただし、一定の複雑さ = O(1) ではないため、インデックスのサイズが使用可能な RAM よりも大きくなると、速度が低下する可能性があります。(MongoDB はインデックスを RAM に保持しようとします。ディスク上のインデックスを検索するために必要なすべての IO により、クエリが大幅に遅くなります)。

于 2011-07-01T20:07:12.353 に答える
6

_idは主キーです。インデックスが付けられています。もちろん速いです。

于 2011-07-01T19:40:34.807 に答える
2

ObjectIds、データ アクセスの主要な方法である場合、MongoDB からデータを取得する最速の方法になります。私たちは MongoDB を、ほとんどのデータ アクセスの鍵付きリポジトリとして利用しています。あなたがやっていることを行うと、素晴らしい結果が得られます。

于 2011-07-01T20:06:57.263 に答える
1

_id フィールドのインデックスは、mongo とデフォルトの主キーによって自動作成されます。速度的には、_id フィールドでドキュメントにアクセスするのが超高速になります。

どのような懸念がありますか?

于 2011-07-01T19:57:07.493 に答える