색인 제거
컬렉션에서 특정 인덱스를 제거할 수 있습니다. 성능에 부정적인 영향을 미치거나, 새 인덱스로 바꾸고 싶거나, 더 이상 인덱스가 필요하지 않은 경우 인덱스를 제거해야 할 수 있습니다.
인덱스를 제거하려면 다음 shell 메서드 중 하나를 사용합니다.
메서드 | 설명 |
---|---|
컬렉션에서 특정 인덱스를 제거합니다. | |
컬렉션 또는 인덱스 배열(지정한 경우)에서 모든 제거 가능한 인덱스를 제거합니다. |
이 작업에 대하여
_id
필드의 기본 인덱스를 제외한 모든 인덱스를 삭제할 수 있습니다. _id
인덱스를 삭제하려면 전체 컬렉션을 삭제해야 합니다.
프로덕션에서 활발하게 사용되는 인덱스를 제거하면 성능 저하를 경험할 수 있습니다. 인덱스를 제거하기 전에 인덱스를 숨겨 제거 시 잠재적으로 발생할 수 있는 영향을 평가하는 것이 좋습니다.
시작하기 전에
인덱스를 제거하려면 인덱스의 이름이 필요합니다. 컬렉션의 모든 인덱스 이름을 가져오려면 getIndexes()
메서드를 실행합니다.
db.<collection>.getIndexes()
절차
제거할 인덱스를 식별한 후 지정된 컬렉션에 대해 다음 제거 방법 중 하나를 사용하세요.
단일 인덱스 제거
특정 인덱스를 삭제하려면 dropIndex()
메서드를 사용하고 인덱스 이름을 지정합니다.
db.<collection>.dropIndex("<indexName>")
여러 인덱스 제거
여러 인덱스를 제거하려면 dropIndexes()
메서드를 사용하고 인덱스 이름으로 구성된 배열을 지정합니다.
db.<collection>.dropIndexes( [ "<index1>", "<index2>", "<index3>" ] )
인덱스를 제외한 모든 인덱스 삭제 _id
_id
인덱스를 제외한 모든 인덱스를 제거하려면 dropIndexes()
메서드를 사용합니다.
db.<collection>.dropIndexes()
결과
인덱스를 삭제하면 시스템에서 작업 상태에 대한 정보를 반환합니다.
출력 예시:
... { "nIndexesWas" : 3, "ok" : 1 } ...
nIndexesWas
값은 인덱스를 제거하기 전의 인덱스 수를 반영합니다.
인덱스가 제거되었는지 확인하려면 db.collection.getIndexes()
메서드를 실행합니다.
db.<collection>.getIndexes()
제거된 인덱스는 더 이상 getIndexes()
출력에 나타나지 않습니다.
자세히 알아보기
기존 인덱스를 관리하는 방법에 대해 자세히 알아보려면 인덱스 관리를 참조하세요.
MongoDB Compass에서 인덱스를 제거하는 방법을 알아보려면 Compass에서 인덱스 관리를 참조하세요.