MongoDB-インデックス作成の制限

この章では、インデックスの制限とその他のコンポーネントについて学習します。

余分なオーバーヘッド

すべてのインデックスはある程度のスペースを占めるだけでなく、挿入、更新、削除のたびにオーバーヘッドが発生します。したがって、コレクションを読み取り操作に使用することがめったにない場合は、インデックスを使用しないのが理にかなっています。

RAM使用量

インデックスはRAMに保存されるため、インデックスの合計サイズがRAMの制限を超えないようにする必要があります。合計サイズがRAMサイズを増やすと、一部のインデックスの削除が開始され、パフォーマンスが低下します。

クエリの制限

−を使用するクエリではインデックス作成は使用できません

  • $ nin、$ notなどの正規表現または否定演算子。
  • $ modなどの算術演算子。
  • $ where句

したがって、クエリのインデックスの使用状況を確認することを常にお勧めします。

インデックスキーの制限

バージョン2.6以降、既存のインデックスフィールドの値がインデックスキーの制限を超えた場合、MongoDBはインデックスを作成しません。

インデックスキー制限を超えるドキュメントの挿入

このドキュメントのインデックス付きフィールド値がインデックスキーの制限を超えた場合、MongoDBはインデックス付きコレクションにドキュメントを挿入しません。mongorestoreおよびmongoimportユーティリティの場合も同様です。

最大範囲

  • コレクションは64を超えるインデックスを持つことはできません。
  • インデックス名の長さは125文字を超えることはできません。
  • 複合インデックスには、最大31個のフィールドにインデックスを付けることができます。