DB/MongoDB

[MongoDB] 몽고DB Index 생성 및 이용

벨포트조던 2020. 9. 16.
반응형

몽고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를 제외한 모든 인덱스를 삭제한다.

반응형

댓글