Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

해시 샤드 키 인덱스 제거

이 페이지의 내용

  • 이 작업에 대하여
  • 단계
  • 자세히 알아보기

MongoDB 5.0.22부터 해시 샤드 키의 인덱스를 삭제할 수 있습니다.

이렇게 하면 해시 샤드 키로 샤딩된 collection의 데이터 삽입 속도를 높일 수 있습니다. 또한 mongosync 을(를) 사용할 때 데이터 수집 속도를 높일 수 있습니다.

불필요한 인덱스 를 삭제하면 CRUD 작업 속도를 높일 수 있습니다. 각 CRUD 작업은 문서와 관련된 모든 인덱스를 업데이트해야 합니다. 인덱스 하나를 제거하면 모든 CRUD 작업 속도가 빨라질 수 있습니다.

해시 샤드 키 인덱스를 삭제하면 서버는 해당 collection에 대한 밸런싱을 비활성화하고 향후 밸런싱 라운드에서 해당 collection을 제외합니다. 다시 한 번 밸런싱 라운드에 collection을 포함하려면 샤드 키 인덱스를 다시 생성해야 합니다.

중요

샤드 키에 해시되지 않은 인덱스 를 지원하는 경우에만 컬렉션 에서 해시된 샤드 키 해시 샤드 키 인덱스 를 삭제해야 합니다. 지원하는 비해시 인덱스 가 샤드 키 에 존재하지 않는 경우, 샤드 샤드 키 필터링하는 쿼리는 컬렉션 스캔 을 수행합니다. 컬렉션 에 어떤 인덱스가 있는지 확인하려면 db.collection.getIndexes() 를 사용합니다.

1

밸런서를 중지하려면 다음 명령을 실행합니다.

sh.stopBalancer()

mongos 에서 sh.stopBalancer() 만 실행할 수 있습니다. sh.stopBalancer()mongod 에서 실행되면 오류를 생성합니다.

2

경고

이 단계를 건너뛰면 에서 잘못된 고아 문서 수를 보고하고 인덱스 가 다시 추가될 경우 밸런싱 작업에 영향을 $collStats 미칩니다.

클러스터 mongod 의 모든 샤드 에 대해 프라이머리 에서 다음 명령을 실행합니다.

db.runCommand(
{
cleanupOrphaned: "<database>.<collection>"
}
)

cleanupOrphaned 1 또는 0 을 반환합니다.

1 값은 다음 중 하나를 나타냅니다.

  • 샤드의 cleanupOrphaned 네임스페이스에 고아 문서가 남아 있지 않습니다.

  • cleanupOrphaned 네임스페이스 에서 참조된 컬렉션 이 샤딩된 되지 않았습니다.

0 값은 오류가 발생했음을 나타냅니다.

클러스터 의 mongod 각 프라이머리 에 대해 이 단계를 반복합니다.

3

다음 명령을 실행하여 인덱스를 삭제합니다.

db.collection.dropIndex("<index name>")
4

다음 명령을 실행하여 cluster에서 밸런서를 다시 시작합니다.

sh.startBalancer()

돌아가기

점보 플래그 지우기