インデックスとの連携
Overview
このガイドでは、 Kotlin Sync ドライバーでインデックスを使用する方法を学習できます。 インデックスはクエリの効率を向上させ、ドキュメントのクエリと保存に機能を追加します。
インデックスがないと、MongoDB はコレクション内のすべてのドキュメントをスキャンして 、各クエリに一致するドキュメントを見つける必要があります。 これらのコレクションスキャンは遅く、アプリケーションのパフォーマンスに悪影響を与える可能性があります。 ただし、クエリに適切なインデックスがある場合、MongoDB はそのインデックスを使用して検査する必要があるドキュメントを制限できます。
操作上の考慮事項
クエリのパフォーマンスを向上させるには、ソートされた結果を返すアプリケーションのクエリや操作で頻繁に表示されるフィールドにインデックスをビルドします。 追加する各インデックスはアクティブな場合にディスク領域とメモリを消費するため、キャパシティー プランニングとしてインデックス メモリとディスク使用量を追跡することをお勧めします。 さらに、書込み操作によってインデックス付きフィールドが更新されると、MongoDB は関連するインデックスを更新するため、書込み操作のパフォーマンスに悪影響を与える可能性があります。
MongoDB アプリケーションでワイルドカード インデックスを使用して、名前が事前に確認されていない、または任意のフィールドに対してクエリを実行できます。 ワイルドカード インデックスは、ワークロードベースのインデックス プランニングを置き換えるように設計されていません。
データモデルの設計とアプリケーションに適したインデックスの選択の詳細については、 マニュアルの「 データ モデリングとインデックス MongoDB Server」のガイドを参照してください。
サンプル データ
このガイドの例では、 Atlas サンプル データセットのsample_mflix
データベース内の movies
コレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。
インデックスの作成
MongoDB は、データのクエリに役立ついくつかの異なるインデックス タイプをサポートしています。 以下のページでは、最も一般的なインデックス型について説明し、各インデックス型を作成するためのサンプルコードを示します。
インデックスを削除する
_id
フィールドのデフォルトの一意なインデックスを除く未使用のインデックスを削除できます。
次のセクションでは、単一のインデックスを削除する方法、またはコレクション内のすべてのインデックスを削除する方法を示します。
単一インデックスの削除
コレクションからインデックスを削除するには、インデックス名をdropIndex()
メソッドに渡します。
次の例では、 movies
コレクションから"_title_"
という名前のインデックスを削除します。
collection.dropIndex("_title_")
注意
複合テキスト インデックスから単一のフィールドを削除することはできません。 インデックス フィールドを更新するには、インデックス全体を削除し、新しいインデックスを作成する必要があります。
すべてのインデックスを削除
コレクションでdropIndexes()
メソッドを呼び出すと、すべてのインデックスを削除できます。
collection.dropIndexes()
API ドキュメント
このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。