ホームページ >データベース >SQL >MongoDB – スキーマを使用して構築された属性スキーマ

MongoDB – スキーマを使用して構築された属性スキーマ

步履不停
步履不停オリジナル
2019-07-01 16:37:042828ブラウズ

MongoDB – スキーマを使用して構築された属性スキーマ

簡単な説明:

属性理解モードに直接入ります。これは、次の状況に特に適しています:

  1. 大きなドキュメントがありますが、実際には類似したフィールドがいくつかあり、これらのフィールドのサブセットは同じ特性を持っています。これらのサブセットを比較するには、フィールドが並べ替えまたはクエリされます;
  2. 実際には、すべてのドキュメントに必要な並べ替えフィールドがあるわけではありません;
  3. または、上記の 2 つの条件が満たされます
    実際には、パフォーマンスを考慮してくださいそのため、検索を最適化するためにこれらのサブセットを処理するには多くのインデックスが必要になる場合があります。ただし、より多くのインデックスを作成すると、パフォーマンスが低下するだけです。属性パターンは、この状況に対する優れた解決策を提供します。

例:

注文データ ドキュメントには、作成時間、支払い時間、発送時間など、実際には記録する必要がある時間がたくさんあります。等データ構造を設計するとき、当然最初に次のことが思い浮かびます:
MongoDB – スキーマを使用して構築された属性スキーマ

実際、時間型が比較的少ない場合、この設計には大きな問題はありません。 , しかし、実際のビジネス シナリオでは、注文に必要な時間が短すぎることはありません。場合によっては、並べ替えを最適化するために、対応するインデックスを作成する必要があります。そこで問題が発生します。インデックスを 1 つ作成する場合非常に多くのフィールドに基づいて 1 つずつ作成すると、多数のフィールドを作成できるため、実際にコストが削減され、全体的なクエリのパフォーマンスが向上します。したがって、現時点では属性モードを使用することが非常に適切です。以下に示すように:

MongoDB – スキーマを使用して構築された属性スキーマこのモードを順序データ構造で考慮すると、同様のフィールド サブセットに繰り返しインデックスを付ける必要がなくなり、クエリ効率が大幅に向上します。

結論:

属性モードでは、各ドキュメント内の多くの同様のフィールドに対して、より簡単なドキュメント インデックスが提供されます。このデータのサブセットをキーと値のサブドキュメントに移動することにより、未定義のフィールド名を使用し、情報に追加の修飾子を追加して、元のフィールドと値の関係をより明確に示すことができます。属性パターンを使用すると、必要なインデックスが少なくなるため、クエリがよりシンプルかつ高速になります。

SQL 関連の技術記事の詳細については、SQL チュートリアル 列にアクセスして学習してください。

以上がMongoDB – スキーマを使用して構築された属性スキーマの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:使用感がある次の記事:使用感がある