インデックスは、クエリの効率を向上させるための最も効果的な手段です。インデックスは特別なデータ構造です。インデックスは、データの一部(特定のフィールドやフィールド値のセットなど)を簡単にトラバースできる形式で格納します。インデックスは、特定のルールに従って、格納された値を並べ替えます。 、およびインデックスのストレージ場所はメモリ内にあり、インデックスからデータを取得するのは非常に高速です。インデックスがない場合、MongoDBはコレクション内のすべてのドキュメントをスキャンする必要があります。これは、特にデータ量が多い場合に非常に非効率的です。
1.インデックスの作成/再構築
MongoDBで新しく作成されたインデックスは、ensureIndex()メソッドを使用し、reIndex()を使用して既存のインデックスを再構築できます。
1.1インデックスの作成ensureIndex()
MongoDBは、ensureIndex()またはcreateIndex()メソッドを使用してインデックスを作成します。
たとえば、サイトのコレクションにインデックスを付けるには、次のようにします。
db.sites.ensureIndex({
name: 1, domain: -1})
db.sites.createIndex({
"person.name":1})
1.2インデックスの再作成reIndex()
たとえば、収集サイトのすべてのインデックスを再構築するには、次のようにします。
db.sites.reIndex()
2.インデックスを表示
MongoDBには、インデックス情報を表示するメソッドが用意されています。getIndexes()メソッドを使用してコレクションのすべてのインデックスを表示し、totalIndexSize()を使用してコレクションインデックスの合計サイズを表示し、db.system.indexes.find()を使用してすべてを表示できます。データベース内のインデックス情報。
2.1コレクション内のインデックスを表示するgetIndexes()
たとえば、収集サイトでインデックスを表示するには、次のようにします。
db.sites.getIndexes()
查询结果格式:
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "newDB.sites"
},
{
"v" : 1,
"key" : {
"name" : 1,
"domain" : -1
},
"name" : "name_1_domain_-1",
"ns" : "newDB.sites"
}
]
2.2コレクションのインデックスサイズを表示するtotalIndexSize()
たとえば、収集サイトのインデックスサイズを表示するには、次のようにします。
db.sites.totalIndexSize()
2.3データベース内のすべてのインデックスを表示するdb.system.indexes.find()
たとえば、現在のデータベースのすべてのインデックスは次のとおりです。
db.system.indexes.find()
3.インデックスを削除します
3.1指定されたインデックスを削除するdropIndex()
最初に、削除する必要のあるインデックスの名前を照会する必要があります。
たとえば、コレクションサイトで「name_1_domain_1」という名前のインデックスを削除します。
db.sites.dropIndex("name_1_domain_1")
3.2すべてのインデックスを削除するdropIndexes()
たとえば、収集サイトのすべてのインデックスを削除します。
db.sites.dropIndexes()
元のテキストを参照してください:https://itbilu.com/database/mongo/E1tWQz4_e.html#show-index