インデックスは、クエリのパフォーマンスを向上させる特別なデータ構造です。インデックスは、コレクションのデータの一部を簡単に走査できる形式で保存します。 インデックスには、特定のフィールドまたはフィールド セットの値が、フィールド値の順に保存されます。
クエリのパフォーマンスを向上させるには、フィールド順でソートする操作やクエリで頻繁に表示されるフィールドにインデックスを構築します。
インデックス付きフィールドに対するクエリでは、インデックスを使用して、一致するドキュメントを見つけるためにスキャンする必要があるドキュメントの数を制限できます。
インデックス付きフィールドでソート操作を行うと、インデックス順で事前にソートされたドキュメントが返される場合があります。
インデックスの詳細については、「インデックス」を参照してください。
注意
Considerations
Indexes have some negative performance impact on write operations. For collections with high write-to-read ratio, indexes are expensive since each insert must also update any indexes. For a detailed list of considerations for indexes, see Operational Considerations for Indexes.
必須のロール
インデックスを作成、削除、または非表示にするには、次のいずれかのロールに帰属するアクセス権が必要です。
Considerations
By default, you can have up to three concurrent index builds. To learn more, see Maximum Concurrent Index Builds.
インデックスの表示
警告
Data Explorer はクラスターのプライマリノードの Usage メトリクスのみを表示します。アプリケーションが主にセカンダリノードから読み取る場合、Usage メトリクスはクラスター全体のインデックスの使用状況を完全に反映しません。
For more comprehensive index usage statistics, run the $indexStats aggregation stage on each node in your cluster.
Indexes タブから、コレクションのインデックス情報を表示できます。コレクションの Indexes タブにアクセスするには:
Atlas で、プロジェクトの Data Explorer ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Database見出しの下のData Explorerをクリックします。
The Data Explorer displays.
重要: クラスターの名前をクリックしてCluster サイドバーを開き、Data Explorer 見出しの下のShortcuts をクリックすることもできます。
Atlas は、各インデックスについて、次の情報を表示します。
名称と定義 | インデックスとキーの名前。 |
|---|---|
タイプ | 通常のインデックス、テキスト インデックス、地理空間インデックス、またはハッシュされたインデックス。 |
サイズ | インデックスの大きさ。 |
使用法 | Number of times the primary node has used the index in a lookup since the index was created or the last server restart. This metric is for informational purposes only. To get comprehensive index usage statistics across all nodes, run the |
プロパティ | インデックスの特殊なプロパティ(一意性、部分性など)。 |
インデックスの作成
警告
Do not create indexes on encrypted fields. Creating indexes on encrypted fields that use Queryable Encryption negatively affect performance. Instead, you can create an index on the __safeContent__ field to support queries on encrypted fields.
インデックス作成ダイアログを開く
From the Indexes tab, click the Create Index button.
インデックスにフィールドを追加する
インデックス キーを指定します。
既存のドキュメントフィールドをインデックス キーとして指定するには、ドロップダウンリストからフィールドを選択します。
どのドキュメントにも存在しないフィールドをインデックス キーとして指定するには、入力ボックスにフィールド名を入力します。
To create a compound index, click the plus icon next to the index type dropdown.
各フィールド名の右側にあるドロップダウンを使用して、インデックス タイプを指定します。次のいずれかのタイプを指定できます。
上昇
下降
2dsphere
Text
ワイルドカード インデックスを指定する方法については、「ワイルドカード インデックスの作成」を参照してください。
オプション。 インデックス オプションの指定
Atlas は次のインデックスオプションをサポートしています。
オプション | 説明 | 詳細情報 | ||||
|---|---|---|---|---|---|---|
ユニークインデックスの作成 | インデックス フィールドに重複する値が格納されていないことを確認します。 一意のインデックスのローリング ビルドは実行できません。 | |||||
インデックス名 | インデックスの名前を指定します。 | |||||
TTLインデックスを作成する | インデックス化されたフィールド値から指定された秒数が経過すると、ドキュメントが自動的に削除されます。 | |||||
部分フィルター式 | 指定されたフィルター式に一致するドキュメントのみをインデックスします。 以下に例を挙げます。 次の部分フィルタ式は、 | |||||
ワイルドカード プロジェクション | インデックス内の指定されたプロジェクションと一致する未知のフィールドまたは任意のフィールドをサポートします。ワイルドカードプロジェクションを使用するには、インデックスフィールド名を 以下に例を挙げます。 次のワイルドカード プロジェクションのドキュメントを検討します。 インデックス フィールド名が | |||||
カスタム照合の使用 | テキストボックスに照合ドキュメントを入力するか貼り付けて、インデックスのカスタム照合を作成します。 | |||||
スパースインデックスの作成 | インデックスは、インデックス付きフィールドが欠落しているドキュメントをスキップします。 | |||||
ローリング プロセスで構築 | インデックスビルドによるパフォーマンスへの影響を最小限に抑えることができます。 重要: ローリング方式でインデックスをビルドすると、クラスターの回復力が低下し、インデックス構築時間が増えます。通常のインデックス構築がニーズを満たせない場合にのみ、ローリングインデックス構築を使用することをお勧めします。 警告: ビルドが失敗したり、クラッシュ ループなど、予期しない問題が発生する可能性があるため、ローリングインデックスと複製されたインデックス構築プロセスを同時に実行することは避けてください。 M10+ クラスターではのみローリング インデックスをビルドできます。 ローリングインデックス構築中に、Atlas は各ノードをレプリカセットから取得し、スタンドアロンモードで開始してインデックス の構築を開始し、それをレプリカセットに返します。このプロセスは、クラスター内の各ノードに対してローリング シーケンスで繰り返されます。 Atlas がオフラインでインデックスの構築を行っている間は、ノードがダウンしているように表示される場合があります。これは期待される動作であり、問題ではありません。 |
MongoDB ベクトル検索とMongoDB Search インデックス
Data ExplorerではMongoDB Search またはMongoDB ベクトル検索インデックスを作成できません。コレクションのMongoDB Search およびMongoDB ベクトル検索インデックスを管理するには、以下を参照してください。
ワイルドカード インデックスの作成
You can create wildcard indexes to support queries against unknown or arbitrary fields. To create a wildcard index in Atlas, manually type the wildcard index field (<field>.$**) into the Select a field name input.
例
ドキュメントにuserMetadataオブジェクトが含まれるコレクションを検討します。userMetadataオブジェクト内のフィールドはドキュメントによって異なる場合があります。
userMetadata にワイルドカード インデックスを作成して、オブジェクト内のすべての潜在的なフィールドを考慮することができます。Select a field name入力に次の内容を入力します。
userMetadata.$**
ワイルドカード インデックスのタイプ(ascendingまたはdescending )を指定して、 Create Indexをクリックします。
Atlas は新しいインデックスのタイプを Wildcard として表示します。
インデックスの非表示または再表示
クエリ プランナーからインデックスを非表示にすると、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。
インデックスの削除
インデックスを削除するには、ゴミ箱アイコンをクリックします。
[インデックス] タブからインデックスを削除するには、そのインデックスのごみ箱アイコンをクリックします。クリックすると、確認ダイアログが表示されます。