1

ソーシャルネットワークにユーザーモデル(mongodb)があります。ユーザーに関連する多くのプロパティがありますが、それらすべてが毎回必要なわけではありません。したがって、同じドキュメントに保存するか、別のモデルを作成する必要があります。

同じドキュメントに格納すると、ドキュメントのサイズが大きくなります。それはクエリ速度に影響しますか?ベストプラクティスは何ですか。

4

2 に答える 2

0

めったにアクセスされないデータをすべて他のドキュメントに抽出します。そうしないと、ユーザー ドキュメントが肥大化し、パフォーマンスに影響します。(コマンドでフィールド指定を使用して) ネットワーク経由で転送しないほど賢くてもfind、それらは同じファイル内にあるため、フル スキャンのパフォーマンスが低下し、作業セットのサイズが必要以上に増加します。

于 2012-10-29T06:59:52.333 に答える
0

フィールドの数や各フィールドのサイズについてのヒントはありませんが、@Sergio が述べているように、大きなドキュメントはワーキング セットと LRU に必要なメモリの量を増やす可能性があります。また、これらの余分なフィールドの多くをカバーする複合インデックスにインデックスを付ける必要がある場合は、特定のクエリのインデックス サイズが大きくなり、インデックスに必要な RAM の量が増える可能性があります。

ただし、速度に関しては、クラスターを正しくセットアップすれば、MongoDB はあらゆる方法で動作するように完全に設計されており、最大ドキュメント サイズは 16 MB です。

したがって、ここでの主な問題はメモリとスペースです。それを考慮して最適な速度で作業すれば、問題はありません。@Sergioが再び言ったように、主な解決策は非正規化することですが、私の主な回答の質問は次のとおりです。そのテーブルのすべてのデータを同時に必要とする頻度はどれくらいですか?

于 2012-10-29T09:14:30.343 に答える