インデックスの作成、表示、削除、非表示
Atlas CLI または Atlas UI を使用して、コレクションのインデックスを管理できます。
インデックスは MongoDB 内でクエリの効率的な実行をサポートするため、アプリケーションが頻繁に読み込むフィールドにはインデックスを検討する必要があります。効果的なインデックスの作成の詳細については、「インデックスの作成戦略」を参照してください。
サーバーレスインスタンスのインデックスの自動作成を有効にすることができます(非推奨)。詳細については、「サーバーレスインスタンスのインデックスの自動作成」を参照してください。
必須のロール
Considerations
デフォルトでは、最大 3 つのインデックスを同時に構築できます。詳細については、「同時インデックス構築の最大数」を参照してください。
ローリング構築によるインデックス構築を開始すると、構築中のノードは HOST_DOWN 状態になります。ローリング構築によるインデックス構築をキャンセルするには、MongoDB サポートに連絡する必要があります。
ローリング方式によるインデックスの構築を選択した場合、以下を確認する必要があります。
ローリング インデックス構築と非ローリング インデックス構築は、同時ではなく順番にリクエストします。現在実行中のインデックス構築が完了するのを待ってから、別のインデックス構築をリクエストしてください。
複数のローリングインデックス構築をリクエストする必要がある場合は、現在実行中のローリングインデックス構築が完了するのを待ってから、別のローリングインデックス構築をリクエストしてください。
ローリング インデックス構築を追跡するには、アクティビティフィードをご覧ください。
中止されたローリング インデックス構築の場合、各ノードで listIndexes
を実行して、キャンセルされたインデックスが存在しないことを確認する必要があります。そうしないと、クラスターが不整合な状態のままになる恐れがあります。
インデックスの表示
コレクションのインデックス情報を表示するには、次の手順に従います。
Atlas で、プロジェクトの [Clusters] ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
Collections ページに移動します。
クラスターの [Browse Collections] ボタンをクリックします。
Data Explorerが表示されます。
インデックスの作成
Tip
インデックスを作成するときは、ターゲット コレクションへの読み取りと書込みの比率を念頭に置きます。インデックスにはパフォーマンスコストが伴いますが、大規模なデータセットで頻繁にクエリを実行する場合はコストに見合うだけの価値があります。インデックスを作成する前に、文書化されたインデックスの作成戦略を読み直してください。
注意
Atlas Search では全文検索を、Atlas Vector Search ではセマンティック検索をビルドできます。Atlas Search ではテキスト インデックスをきめ細やかに作成できます。詳細については、「Atlas Search のインデックス構文の確認」と「ベクトル検索のためのフィールドのインデックス作成方法」を参照してください。
Atlas CLI を使用して Atlas クラスターのローリング インデックスを作成するには、次のコマンドを実行します。
atlas clusters indexes create [indexName] [options]
コマンド構文とパラメーターについて詳しくは、「Atlas クラスター インデックス作成」の Atlas CLI ドキュメントを参照してください。
Atlas UI を使用してコレクションのインデックスを作成するには次のようにします。
[Create Index] をクリックします。
Create Index モーダルで、次のようにインデックス キー仕様ドキュメントを入力します。
{ <field1>: <index type>, ... }
例
category
(昇順)とscore
(降順)フィールドに複合インデックスを作成するには、インデックス仕様ドキュメントを指定します。
{ category: 1, score: -1 }
インデックスの詳細については、「インデックス」を参照してください。
(任意)インデックス オプションを指定します。
インデックスを作成するときは、さまざまなインデックス オプションを指定できます。
例:
部分インデックスの場合は、partialFilterExpression オプションを指定します。
スパース インデックスの場合は、sparse オプションを指定します。
TTL インデックスの場合は、 expireAfterSeconds オプションを指定します。
2d インデックスの場合は、2d インデックスのオプションを指定します
{ <option1>: <value1>, ... }
例
次のオプション ドキュメントでは、インデックスの unique
オプションと name
を指定します。
{ unique: true, name: "myUniqueIndex" }
注意
一意のインデックスのローリング ビルドは実行できません。unique
index オプションを使用して、ローリング方式のインデックス構築を有効にすると、Atlas はエラーメッセージを表示して構成を拒否します。
(任意)照合オプションを設定します。
照合を使用して、大文字と小文字やアクセント記号の規則など、文字列比較の言語独自のルールを指定します。照合ドキュメントには、 ICU ロケール コード を示す
locale
フィールドが含まれており、照合動作を定義する他のフィールドが含まれる場合もあります。
例
次の照合オプション ドキュメントでは、フランス語の照合にロケール値 fr
を指定しています。
{ "locale": "fr" }
MongoDB 照合がサポートするロケールのリストを確認するには、言語とロケールのリストを参照してください。各ロケールでデフォルトで有効になっている照合オプションなどについて詳しくは、MongoDB マニュアルの 照合 を参照してください。
(任意)ローリング方式でインデックスの構築を有効にします。
重要
ローリング インデックス構築は、特定の条件を満たした場合にのみ成功します。インデックス構築に成功するようにするには、再起動ループをトリガーすることが多い次の設計パターンを避けてください。
インデックス キーが インデックス キーの制限 を超えています
インデックス名はすでに存在します
複数の配列フィールドにおけるインデックス
テキスト インデックスの最大数を持つコレクションのインデックス
テキスト インデックスの最大数を持つコレクションのテキスト インデックス
注意
Atlas UI は、M0
個の無料クラスターと M2/M5
個の共有クラスターのローリング構築によるインデックスの構築をサポートしていません。サーバーレス インスタンスのローリング構築ではインデックスを構築できません。
インデックス構築によるパフォーマンスの低下を許容できないワークロードの場合は、ローリング方式でインデックスを構築することを検討してください。
クラスターの可用性を維持するには、次の手順に従います。
Atlas は、セカンダリから始めて、一度に 1 つのノードをクラスターから削除します。
一度に複数のノードがダウンする可能性がありますが、Atlas は常に大多数のノードをオンラインに保ちます。
Atlas は、すべてのノードで成功しないローリング インデックス構築を自動的にキャンセルします。ローリング インデックス構築が一部のノードで完了したが、他のノードで失敗した場合、Atlas は構築をキャンセルし、正常に構築されたすべてのノードからインデックスを削除します。
ローリング インデックス構築がキャンセルされた場合、Atlas は アクティビティフィード イベント を生成し、次の情報を含む通知メールをプロジェクト所有者に送信します。
ローリング インデックス構築に失敗したクラスターの名前
ローリング インデックス構築に失敗した名前空間
クラスターと名前空間を含むプロジェクト
プロジェクトを含む組織
アクティビティ フィード イベントへのリンク
インデックスの再構築について詳しくは、「レプリカセットでインデックスを構築する」を参照してください。
注意
Unique インデックス オプションは、ローリング方式でのインデックスの構築と互換性がありません。Options ペインで
unique
を指定すると、Atlas はエラー メッセージを表示して構成を拒否します。
インデックスの削除
Atlas UI を使用してコレクションからインデックスを削除するには次の手順に従います。
Atlas で、プロジェクトの [Clusters] ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
Collections ページに移動します。
クラスターの [Browse Collections] ボタンをクリックします。
Data Explorerが表示されます。
重要
_id
インデックスを削除または非表示にすることはできません。詳細については、「ユニークインデックス」を参照してください。
インデックスを削除する前に、削除の影響を評価するためにインデックスを非表示にすることを検討しましょう。詳細については、「非表示のインデックス」を参照してください。
注意
Atlas CLI の制限
Atlas CLI を使用してクラスターのインデックスを削除することはできません。
インデックスの非表示
Atlas UI を使用してインデックスを非表示にするには、次の手順に従います。
Atlas で、プロジェクトの [Clusters] ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
Collections ページに移動します。
クラスターの [Browse Collections] ボタンをクリックします。
Data Explorerが表示されます。