문서 홈 → 보기 & 데이터 분석 → MongoDB Compass
색인 관리
인덱스는 쿼리 성능을 향상시키는 특수 데이터 구조입니다.인덱스는 컬렉션 데이터의 일부를 탐색하기 쉬운 형태로 저장합니다. 인덱스는 특정 필드 또는 필드 집합의 값을 필드 값에 따라 정렬하여 저장합니다.
쿼리 성능을 개선하려면 쿼리에 자주 나타나는 필드와 필드를 기준으로 정렬하는모든 작업에 대해 인덱스를 구축하세요.
인덱스된 필드에 대한 쿼리는 인덱스를 사용하여 일치하는 문서를 찾기 위해 스캔해야 하는 문서 수를 제한할 수 있습니다.
인덱스된 필드에 대한 정렬 작업은 인덱스에 의해 미리 정렬된 문서를 반환할 수 있습니다.
인덱스에 대해 자세히 알아보려면 인덱스를 참조하세요.
참고
고려 사항
인덱스는 쓰기 작업에 몇 가지 부정적인 성능 영향을 미칩니다. 쓰기 대 읽기 비율이 높은 컬렉션의 경우 각 삽입은 인덱스도 업데이트해야 하므로 비용이 많이 듭니다. 인덱스에 대한 자세한 고려 사항 목록은 인덱스 운영 고려 사항을 참조하세요.
인덱스 탭
Indexes 탭에는 컬렉션의 기존 인덱스가 나열됩니다.
컬렉션의 Indexes 탭에 액세스하려면 왼쪽 창에서 컬렉션을 클릭하고 Indexes 탭을 선택하세요.
각 인덱스에 대해 Compass는 다음 정보를 표시합니다:
이름 및 정의 | 인덱스 이름 및 키. |
유형 | 일반, 텍스트, 지리적 공간 또는 해시 인덱스. |
size | 인덱스의 크기. |
사용법 | 인덱스가 생성된 시점 또는 마지막 서버 재시작 이후 인덱스가 사용된 횟수입니다. |
속성 | 인덱스의 모든 특수 속성(예: 고유성, 부분)입니다. |
인덱스 만들기
Compass를 통해 collection에 인덱스를 만들려면 collection에 문서가 포함되어 있어야 합니다.
Create Index 버튼을 클릭합니다.
인덱스 탭에서 Create Index 버튼을 클릭하여 Create Index 대화 상자를 표시합니다.
인덱스에 필드를 추가합니다.
인덱스 키를 지정합니다.
기존 문서 필드를 인덱스 키로 지정하려면 드롭다운 목록에서 필드를 선택합니다.
어떤 문서에도 존재하지 않는 필드를 인덱스 키로 지정하려면 입력 상자에 필드 이름을 입력합니다.
복합 인덱스 를 만들려면 Add Another Field 을 클릭합니다.
각 필드 이름 오른쪽에 있는 드롭다운을 사용하여 인덱스 유형(
ascending
,descending
또는 2dsphere)을 지정합니다.
팁
다음도 참조하세요.
와일드카드 인덱스를 지정하는 방법을 알아보려면 와일드카드 인덱스를 참조하세요.
선택 사항. 인덱스 옵션을 지정합니다.
Compass는 다음과 같은 인덱스 옵션을 지원합니다:
옵션 | 설명 | 자세한 정보 | ||||
---|---|---|---|---|---|---|
백그라운드에서 인덱스 빌드 |
| |||||
고유 인덱스 만들기 | 인덱싱된 필드에 중복된 값이 저장되어 있지 않은지 확인합니다. | |||||
TTL 인덱스 생성 | 인덱싱된 필드 값 이후 지정된 시간(초)이 지나면 문서를 자동으로 삭제합니다. | |||||
부분 필터 표현식 | 지정된 필터 표현식과 일치하는 문서만 인덱싱합니다. 예제다음 부분 필터 표현식은
| |||||
사용자 지정 데이터 정렬 사용 | Compass에서 제공하는 옵션을 사용하여 인덱스에 대한 사용자 지정 데이터 정렬을 만듭니다. | |||||
와일드카드 프로젝션(MongoDB 4.2의 새로운 기능) | 이 인덱스에 지정된 프로젝션과 일치하는 미확인 필드 또는 임의 필드를 지원합니다. 와일드카드 프로젝션을 사용하려면 인덱스 필드 이름을 예제다음 와일드카드 프로젝션 문서를 고려하세요:
인덱스 필드 이름이 |
와일드카드 인덱스
버전 v4.2에 추가.
와일드카드 인덱스 를 생성하여 알 수 없거나 임의의 필드에 대한 쿼리를 지원할 수 있습니다. Compass에서 와일드카드 인덱스를 만들려면 Select a field name 입력에 와일드카드 인덱스 필드(<field>.$**
)를 수동으로 입력합니다.
예제
문서에 userMetadata
객체가 포함된 컬렉션을 고려해 보세요. userMetadata
객체 내의 필드는 문서마다 다를 수 있습니다.
userMetadata
에 와일드카드 인덱스를 만들어 개체 내의 모든 잠재적 필드를 고려할 수 있습니다. Select a field name 입력란에 다음을 입력합니다.
userMetadata.$**
와일드 카드 인덱스의 유형(ascending
또는 descending
)을 지정한 다음 Create Index를 클릭합니다.
Compass에서 새 인덱스의 유형을 Wildcard로 표시합니다.
색인 삭제
휴지통 아이콘을 클릭하면 인덱스가 삭제됩니다.
인덱스 탭에서 인덱스를 삭제하려면 해당 인덱스의 휴지통 아이콘을 클릭합니다. 확인 대화 상자가 나타납니다.
제한 사항
MongoDB Compass Readonly Edition 에서는 인덱스 생성 및 삭제가 허용되지 않습니다.
Data Lake에 연결된 경우 Indexes 탭을 사용할 수 없습니다.