MongoDB(37) - インデックスの種類

MongoDBでは大量のデータを処理することが多いため、インデックスの作成は必須の設定と言えます。

今回はインデックスの種類についてまとめます。

インデックスの種類

MongoDBでは、次のようなインデックスの種類があります。

  • デフォルトインデックス
    _idフィールドに自動的に作成されるユニークなインデックスのことです。
    このデフォルトインデックスは削除することができません。
  • テキストインデックス
    文字列コンテンツに対するテキスト検索クエリーをサポートするインデックスのことです。
  • TTLインデックス
    特定の時間または特定の時刻に、自動的にドキュメントを削除することができるインデックスです。
  • ハッシュインデックス
    フィールド値のハッシュ値をインデックスします。
  • 地理的インデックス
    プレーンジオメトリを使用する2Dインデックスと、球面ジオメトリを使用する2Dsphereインデックスのことです。

インデックスをつけるべきフィールド

性能面の観点からインデックスをつけるべきフィールドは次の2つです。

  • 検索条件でよく使用するフィールド
  • コレクション結合のキーとなるフィールド

インデックスのデメリット

インデックスを作成すると検索を速くすることができますが、無駄なインデックスがあると次のようなデメリットが発生するので注意が必要です。

  1. 登録、更新、削除の処理が遅くなる。
  2. ディスクの使用量が多くなる。

ただ、このデメリット以上に検索がとても速くなるため、ほとんどのコレクションでインデックスを使うことになります。


次回は、インデックスの確認と作成を行います。