인덱스 만들기
인덱스는 MongoDB에서 쿼리를 효율적으로 실행할 수 있도록 지원합니다. 애플리케이션에서 동일한 필드에 대한 쿼리를 반복적으로 실행하는 경우 해당 필드에 인덱스를 생성하여 해당 쿼리의 성능을 개선할 수 있습니다.
인덱스를 만들려면 드라이버에 createIndex()
셸 메서드 또는 이에 상응하는 메서드를 사용합니다. 이 페이지에는 MongoDB Shell 및 드라이버의 예제가 나와 있습니다.
이 작업에 대하여
MongoDB 셸 또는 드라이버에서 인덱스 생성 명령을 실행하면 동일한 사양의 인덱스가 존재하지 않는 경우에만 인덱스가 생성됩니다.
인덱스는 쿼리 성능을 향상시키지만 인덱스를 추가하면 쓰기 작업의 성능에 부정적인 영향을 미칩니다. 쓰기 대 읽기 비율이 높은 컬렉션의 경우 각 삽입 및 업데이트는 인덱스도 업데이트해야 하므로 비용이 많이 듭니다.
절차
➤ 이 페이지에 있는 예제의 언어를 설정하려면 오른쪽 탐색 창에서 언어 선택 드롭다운 메뉴를 사용합니다.
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> );
비동기 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_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
필드에 단일 키 내림차순 색인을 만듭니다.
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"))
참고
인덱스 정렬 순서
MongoDB는 어느 방향으로든 인덱스를 탐색할 수 있으므로, 단일 필드 인덱스의 경우 인덱스 키의 정렬 순서(오름차순 또는 내림차순)는 중요하지 않습니다.
결과
인덱스가 생성되었는지 확인하려면 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가 인덱스를 빌드하는 방법을 알아보려면 인덱스 빌드 프로세스를 참조하세요.