기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
인덱스 유지 관리
인덱스 팽창
Amazon DocumentDB는 다중 버전 동시성 제어(MVCC)를 사용하여 동시 트랜잭션을 관리합니다. 문서가 삭제되거나 업데이트되면 이전 버전은 컬렉션 및 인덱스에 ‘데드’ 버전으로 유지됩니다. 폐영역 회수 프로세스는 향후 작업을 위해 이러한 데드 버전에서 공간을 자동으로 회수합니다.
인덱스 팽창은 데드 버전 또는 더 이상 사용되지 않는 인덱스 항목이 누적되거나 페이지 내에 조각화되면서 컬렉션의 인덱스가 커질 때 발생합니다. 보고된 백분율은 향후 인덱스 항목에서 사용할 수 있는 인덱스 공간의 양을 나타냅니다. 이 팽창은 버퍼 캐시와 스토리지 모두에서 공간을 소비합니다. 팽창을 제거하려면 인덱스를 다시 빌드해야 합니다.
예: 다음 명령을 실행하여 인덱스의 미사용 스토리지를 확인합니다.
db.coll.aggregate({$indexStats:{}});
다음과 비슷한 결과가 반환됩니다.
{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" : 409600, "unusedSizePercent" : 49.51 } }
전체 컬렉션을 스캔해야 하는 reIndex 명령을 사용하여 가동 중지 없이 인덱스를 재구축할 수 있습니다. reIndex를 사용한 인덱스 유지 관리를 참조하세요.
reIndex를 사용한 인덱스 유지 관리
reIndex는 인덱스를 다시 빌드하는 데 사용되는 명령입니다. 일반적으로 인덱스가 손상되거나 비효율적일 때 사용됩니다. 시간이 지남에 따라 많은 업데이트, 삽입 또는 삭제로 인해 인덱스에 미사용 스페이스가 누적되어 성능이 저하될 수 있습니다. 리인덱싱은 사용하지 않는 스페이스를 제거하고 인덱스의 효율성을 복원하는 데 도움이 됩니다.
reIndex 지침
reIndex는 Amazon DocumentDB 5.0 이상에서만 지원됩니다.
reIndex는 항상 백그라운드에서 실행됩니다.
Amazon DocumentDB는 백그라운드에서 단일 인덱스의 재인덱스를 지원하므로 여러 작업자가 사용할 수 있습니다. 이전 인덱스는 reIndex 프로세스가 실행 중일 때 쿼리에서 사용할 수 있습니다.
Amazon DocumentDB는 currentOp를 통한 인덱싱 진행률 보고서를 지원합니다. 인덱스 생성 중에 볼 수 있는 인덱스 빌드 단계와 유사한 인덱스 빌드 단계를 볼 수 있습니다. 유일한 차이점은 reIndex에는 고유 여부와 관계없이 항상 8개의 단계가 있다는 것입니다. "빌딩 인덱스: 정렬 키 2" 단계가 없습니다.
reIndex는 동일한 컬렉션에서 인덱스 관련 명령인 createIndexes, dropIndexes, collMod, renameCollection을 제외한 모든 명령과 동시에 실행할 수 있습니다.
reIndex는 현재 텍스트, 지리 공간, 벡터 및 부분 인덱스에 대해 지원되지 않습니다.
reIndex 빌드
다음 명령을 사용하여 인덱스를 재구축합니다.
db.runCommand({ reIndex: "collection-name", index: "index-name"})
필요에 따라 재구축 프로세스에 할당된 작업자 수를 제어할 수도 있습니다.
db.runCommand({ reIndex: "collection-name", index: "index-name", workers: number })
Java를 사용한 인덱스 관리에 대한 자세한 내용은 Java를 사용한 Amazon DocumentDB의 인덱스 관리를 참조하세요.