인덱스 만들기
인덱스는 MongoDB에서 쿼리를 효율적으로 실행할 수 있도록 지원합니다. 애플리케이션에서 동일한 필드에 대한 쿼리를 반복적으로 실행하는 경우 해당 필드에 인덱스를 생성하여 해당 쿼리의 성능을 개선할 수 있습니다.
인덱스를 생성하려면 드라이버에 createIndex()
셸 메서드 또는 이에 상응하는 메서드를 사용하면 됩니다. 이 페이지에는 MongoDB Shell 및 드라이버의 예시가 나와 있습니다.
이 작업에 대하여
MongoDB Shell 또는 드라이버에서 인덱스 생성 명령을 실행하면 동일한 사양의 인덱스가 존재하지 않는 경우에만 인덱스가 생성됩니다.
인덱스는 쿼리 성능을 향상시키지만 인덱스를 추가하면 쓰기 작업의 성능에 부정적인 영향을 미칩니다. 쓰기 대 읽기 비율이 높은 컬렉션의 경우 각 삽입 및 업데이트는 인덱스도 업데이트해야 하므로 비용이 많이 듭니다.
절차
➤ 이 페이지에 있는 예시의 언어를 설정하려면 오른쪽 탐색 창에서 언어 선택 드롭다운 메뉴를 사용합니다.
mongosh
에 인덱스를 만들려면 db.collection.createIndex()
를 사용하세요.
db.collection.createIndex( <key and index type specification>, <options> )
.NET 드라이버를 사용하여 인덱스를 만들려면 MongoCollection.CreateIndex를 사용하세요.
collection.CreateIndex( IndexKeys<collection>.<key and index type specification>, <options> );
Async Java 드라이버를 사용하여 인덱스를 만들려면 com.mongodb.async.client.MongoCollection.createIndex를 사용합니다.
collection.createIndex( <key and index type specification>, <options>, <callbackFunction>)
Java 드라이버를 사용하여 인덱스를 작성하려면 com.mongodb.client.MongoCollection.createIndex를 사용하세요.
collection.createIndex(<key and index type specification>, <options>)
Motor 드라이버를 사용하여 인덱스를 생성하려면 motor.motor_asyncio.AsyncIOMotorCollection.create_index
를 사용합니다.
await db.collection.create_index([(<key and index type specification>)], <options> )
Node.JS 드라이버를 사용하여 인덱스를 생성하려면 createIndex()
을(를) 사용합니다.
collection.createIndex( { <key and index type specification> }, function(err, result) { console.log(result); callback(result); } )
Perl 드라이버를 사용하여 인덱스를 만들려면 create_one()
my $indexes = $db->get_collection( <collection> )->indexes; $indexes->create_one( [ <key and index type specification> ] );
PHP 드라이버 를 사용하여 인덱스를 만들려면 MongoDB\\Collection::createIndex()
을(를) 사용합니다.
$collection->createIndex(<key and index type specification>, <options>);
Python 드라이버를 사용하여 인덱스를 생성하려면 pymongo.collection.Collection.create_index 메서드를 사용하세요.
db.collection.create_index([(<key and index type specification>)], <options> )
Ruby 드라이버를 사용하여 인덱스를 만들려면 Mongo::Index::View#create_one을 사용하세요.
client[:collection].indexes.create_one({ <key and index type specification> }, {options})
Scala 드라이버를 사용하여 인덱스를 만들려면 org.mongodb.scala.model.Indexes를 사용합니다.
collection.createIndex(<key and index type specification>)
예시
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
db.collection.createIndex( { name: -1 } )
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.CreateIndex( IndexKeys<collection>.Descending("name") );
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.createIndex(Indexes.descending("name"), someCallbackFunction());
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.createIndex(Indexes.descending("name"));
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.createIndex(Indexes.descending("name"))
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
await collection.create_index([("name", pymongo.DESCENDING)])
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.createIndex( { name : -1 }, function(err, result) { console.log(result); callback(result); } )
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
my $indexes = $db->get_collection( <collection> )->indexes; $indexes->create_one( [ name => -1 ] );
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
$collection->createIndex(['name' => -1]);
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.create_index([("name", pymongo.DESCENDING)])
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
client[:collection].indexes.create_one({ name: -1 })
이 예에서는 name
필드에 단일 키 내림차순 색인을 만듭니다.
collection.createIndex(descending("name"))
참고
인덱스 정렬 순서
내림차순 단일 필드 인덱스 를 사용하면 인덱스 성능에 부정적인 영향 수 있습니다. 최상의 성능을 위해 오름차순 단일 필드 인덱스만 사용하세요.
결과
인덱스가 생성되었는지 확인하려면 mongosh
을(를) 사용하여 db.collection.getIndexes()
메서드를 실행합니다.
db.collection.getIndexes()
출력:
[ { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { name: -1 }, name: 'name_-1' } ]
드라이버를 사용하여 생성된 인덱스에 대한 정보를 보려면 해당 드라이버의 문서를 참조하세요.
자세히 알아보기
MongoDB Compass에서 인덱스를 생성하는 방법을 알아보려면 Compass 문서에서 인덱스 관리를 참조하세요.
인덱스가 얼마나 자주 사용되는지 확인하려면 인덱스 사용량 측정을참조하세요.
인덱스 이름을 지정하는 방법에 대한 자세한 내용은 인덱스 이름 지정을 참조하십시오.
MongoDB가 인덱스를 빌드하는 방법을 알아보려면 인덱스 빌드 프로세스를 참조하세요.