Latest web development tutorials

MongoDBのインデックス

インデックスは、データの読み出しは、コレクション内の各ファイルをスキャンして、クエリ条件に一致するレコードを選択しなければならないというインデックス、MongoDBは存在しない場合、大幅にクエリの効率を向上することが通常可能です。

このスキャン全体のコレクションクエリの効率は、このサイトのパフォーマンスは非常に致命的である大量のデータを扱う場合は特に、クエリは秒あるいは数十分かかることがあり、非常に低いです。

インデックスは特別なデータ構造で、インデックスが読みやすいトラバーサルのデータセットに格納され、インデックス値は、ソートするデータベーステーブルまたは列の構造であります


ensureIndex()メソッド

MongoDBはインデックスを作成するensureIndex()メソッドを使用しています。

文法

ensureIndex()メソッドの基本的な構文は次のとおりです。

>db.COLLECTION_NAME.ensureIndex({KEY:1})

文法キーインデックスフィールド値は指定されたあなたが-1に指定することができますインデックスを作成する場合は降順、昇順を作成するためのインデックスを作成したいです。

>db.col.ensureIndex({"title":1})
>

ensureIndex()メソッドは、あなたも(リレーショナルデータベースは複合インデックスと呼ばれる)のインデックスを作成するために、複数のフィールドを使用するように設定することができます。

>db.col.ensureIndex({"title":1,"description":-1})
>

ensureIndex()はオプションのパラメータを受け取り、オプションのパラメータは次のとおりです。

パラメーター タイプ 説明
背景 ブーリアン インデックス作成プロセスは、他のデータベース操作をブロックする背景には、後段のシステム、「背景」オプションのパラメータの増加を指定することができますインデックスを作成します。 「背景」のデフォルト値はfalseです
ユニーク ブーリアン インデックスがユニークです。 trueに一意のインデックスを作成するように指定します。 デフォルト値はfalseです
名前 文字列 索引の名前。 インデックスフィールド名とインデックス名を生成するソート順を接続することにより、MongoDBのを指定しない場合。
dropDups ブーリアン あなたは一意のインデックスを作成するときに重複したレコードを削除し、一意のインデックスを作成するためにtrueを指定します。 デフォルト値はfalseです
まばらな ブーリアン フィールドデータがインデックスを有効にしていない文書に存在しないために、trueに設定している場合、このパラメータは、特別な注意が必要で、その後、インデックスフィールドには、対応するフィールドが含まれていない文書を照会しません.. デフォルト値はfalseです
expireAfterSeconds 整数 コレクションの生存時間を設定し、TTL設定を完了するためにユニットの値を秒単位で指定します。
V インデックスのバージョン インデックスのバージョン番号。 mongodは、インデックスのバージョンを作成するときに、インデックスのデフォルトのバージョンは、実行に依存します。
ウェイト ドキュメント 指数の重みは、1〜99,999の間の値は、インデックスの重量に対して別のインデックスフィールドを獲得する権利を表します。
DEFAULT_LANGUAGE 文字列 テキスト索引の場合、このパラメータはストップワードを決定し、ルールや単語リストをステミング。 デフォルトは英語です
language_override 文字列 文書に含まれるフィールド名を指定するテキストのインデックスについては、言語がデフォルト言語をオーバーライドし、デフォルト値は言語です。

バックグラウンドでインデックスを作成します。

db.values.ensureIndex({open: 1, close: 1}, {background: true})

インデックス作成時に背景を追加することによって:trueオプションを、バックグラウンドで仕事を作成することができます