몽고DB에서 Index를 생성하고 이용해보자.
데이터 필드에 인덱스를 추가로 생성할 수 있다.
몽고DB에서 인덱스는 B트리 인덱스를 사용한다.(키 추가, 삭제되어도 밸런스 유지 가능)
인덱스 키는 평균 30바이트 정도이며 최대 8,192바이트
고유, 희소, 다중키 인덱스를 지원한다.
1개의 쿼리 당 1개의 인덱스만 사용한다.
(여러 개 필드 인덱싱이 필요한 경우 복합인덱스를 생성 후 이용한다. 복합 인덱스는 키 순서가 중요하므로 주의할 것)
콜렉션당 최대 64개의 인덱스를 생성 가능
메모리가 부족한 경우 페이지 폴트가 빈번히 발생하게 되며 성능이 저하된다.
인덱스 조회
db.collection.getIndexes()
ex) db.users.getIndexes();
=> users Collection의 모든 인덱스를 조회한다.
인덱스 생성
db.collection.createIndex(keys, options)
options는 Optional으로 생략가능
createIndex 별칭 ensureIndex 사용가능하다.
ex) db.users.createIndex( { enrollDate: 1 } )
=> users Collection에 enrollDate(등록일자)기준 오름차순으로 인덱스를 생성한다.
※ 1 은 오름차순, -1은 내림차순
options
{background:true} 사용하는 경우 속도는 느리지만 인덱스생성 中 읽고 쓰기가 가능하다.
{unique:true} 사용하는 경우 유일성이 보장되며 검색 속도 향상시킬 수 있다.
인덱스 삭제
ex) db.users.dropIndex( { enrollDate: 1 } )
=> users Collection에 enrollDate(등록일자)기준 오름차순 인덱스를 삭제한다.
ex) db.users.dropIndexes();
=> users Collection에 기본 Index를 제외한 모든 인덱스를 삭제한다.
'DB > MongoDB' 카테고리의 다른 글
[mongo] 몽고 DB Join 방법 . 몽고 버전에 따른 lookup, 다른 DB 컬렉션 join (0) | 2022.08.31 |
---|---|
[mongo] 전체 컬럼 업데이트 (0) | 2022.05.02 |
[mongo] 배열 데이터 삭제 (0) | 2020.09.16 |
mongoDB 에 json 값 저장하기 ( spring ) (0) | 2020.01.06 |
[studio 3t] mongoDB group by 하는 법 , count 방법 (0) | 2019.10.15 |
댓글