Docs Menu
Docs Home
/
MongoDB マニュアル
/

時系列インデックス

項目一覧

  • クラスター化されたコレクション
  • 複合インデックス
  • 部分インデックス
  • TTL Indexes
  • 禁止されたインデックス
  • インデックス作成のベストプラクティス

時系列コレクションのインデックスは通常、通常のコレクションのインデックスと同様に動作しますが、いくつか追加の考慮事項と制限があります。

時系列コレクション に セカンダリ インデックス があり、機能の互換性バージョン(fCV)をダウングレードする必要がある場合は、まずダウングレードされた fCV と互換性のないセカンダリ インデックスをすべて削除する必要があります。詳しくは、setFeatureCompatibilityVersion を参照してください。

バージョン6.0以降では、時系列コレクション内の任意のフィールドにセカンダリインデックスを追加できます。 MongoDBは、個々のドキュメントではなく、ドキュメントのバケット単位で時系列コレクションをインデックス化します。時系列バケットには、共有された metaField 値を持つドキュメントが、近い順の timeField 値の順に含まれます。 MongoDBは、 metaField を除くすべてのフィールドの最小値と最大値をインデックス化します。個々のドキュメントではなくバケットにインデックスを作成すると、インデックスのサイズが縮小され、 クエリの効率が向上します。

Tip

クエリのパフォーマンスを高めるために、時系列コレクション内の任意のフィールドにセカンダリ インデックス を手動で追加できます。

デフォルトでは 、 MongoDBはバケット時間に基づいて時系列コレクションをクラスター化します。

バージョン 6.3 で追加

MongoDB 6.3以降、 MongoDBは時系列コレクションの metaField と timeField の両方にデフォルトの複合インデックスを作成します。 MongoDBはこのインデックスを使用して、クエリのパフォーマンスと速度を向上させます。

timeFieldmetaField 、または測定フィールドに複合インデックスを追加できます。

バージョン 6.0 で追加。

MongoDB6.0 以降では、時系列コレクションの 部分インデックス$or とともに$geoWithin$in 、および 演算子を使用できます。

metaField および timeField では部分インデックスを作成できません。

バージョン 6.3 で追加

MongoDB 6.3以降では、metaField のみに依存するpartialFilterExpressionを使用してTTLインデックスを作成できます。 6.3より前のバージョンでは、 expireAfterSecondsパラメータに基づいて TTL インデックスのみを作成できます。

時系列コレクションでドキュメントを期限切れにするためにexpireAfterSecondsオプションを使用していない場合、部分的な TTLインデックスを作成すると、一致するドキュメントのみの有効期限が設定されます。コレクションですべてのドキュメントにexpireAfterSecondsが使用されている場合は、部分的な TTLインデックスを使用して一致するドキュメントをより早く期限切れにすることができます。

MongoDBでは、時系列コレクションで次のインデックスタイプは許可されません。

メタフィールド では スパース インデックス を作成できません。

  • フィルタリングと等価性のために metaFieldインデックスを使用します。

  • 範囲クエリには timeField やその他のインデックス付きフィールドを使用します。

  • 一般的なインデックス戦略は、時系列コレクションにも適用されます。詳細については、「インデックスの作成戦略 」を参照してください。

詳細と例については、「時系列コレクションへのセカンダリ インデックスの追加 」を参照してください。

戻る

マテリアライズドビューの構築