해시 샤드 키 인덱스 제거
MongoDB 5.0.22부터 해시 샤드 키의 인덱스를 삭제할 수 있습니다.
이렇게 하면 해시 샤드 키로 샤딩된 collection의 데이터 삽입 속도를 높일 수 있습니다. 또한 mongosync
을(를) 사용할 때 데이터 수집 속도를 높일 수 있습니다.
이 작업에 대하여
불필요한 인덱스 를 삭제하면 CRUD 작업 속도를 높일 수 있습니다. 각 CRUD 작업은 문서와 관련된 모든 인덱스를 업데이트해야 합니다. 인덱스 하나를 제거하면 모든 CRUD 작업 속도가 빨라질 수 있습니다.
해시 샤드 키 인덱스를 삭제하면 서버는 해당 collection에 대한 밸런싱을 비활성화하고 향후 밸런싱 라운드에서 해당 collection을 제외합니다. 다시 한 번 밸런싱 라운드에 collection을 포함하려면 샤드 키 인덱스를 다시 생성해야 합니다.
중요
샤드 키에 해시되지 않은 인덱스 를 지원하는 경우에만 컬렉션 에서 해시된 샤드 키 해시 샤드 키 인덱스 를 삭제해야 합니다. 지원하는 비해시 인덱스 가 샤드 키 에 존재하지 않는 경우, 샤드 샤드 키 필터링하는 쿼리는 컬렉션 스캔 을 수행합니다. 컬렉션 에 어떤 인덱스가 있는지 확인하려면 db.collection.getIndexes()
를 사용합니다.
단계
collection에 고아 문서가 없는지 확인
경고
이 단계를 건너뛰면 에서 잘못된 고아 문서 수를 보고하고 인덱스 가 다시 추가될 경우 밸런싱 작업에 영향을 $collStats
미칩니다.
클러스터 mongod
의 모든 샤드 에 대해 프라이머리 에서 다음 명령을 실행합니다.
db.runCommand( { cleanupOrphaned: "<database>.<collection>" } )
cleanupOrphaned
1
또는 0
을 반환합니다.
1
값은 다음 중 하나를 나타냅니다.
샤드의
cleanupOrphaned
네임스페이스에 고아 문서가 남아 있지 않습니다.cleanupOrphaned
네임스페이스 에서 참조된 컬렉션 이 샤딩된 되지 않았습니다.
0
값은 오류가 발생했음을 나타냅니다.
클러스터 의 mongod
각 프라이머리 에 대해 이 단계를 반복합니다.