[mongoDB]index 몽고디비 인덱스
몽고디비에도 rdbms처럼 인덱스가 있습니다.
인덱스는 dbms에서 필수라고 할 수 있죠.
일반적으로 만드는 밸런스트리 인덱스와
다른옵션으로 backgroud index, covered index
그리고 좌표를 인덱스로 할 수 있는 Geospatial index가 있습니다.
db.콜렉션이름.getIndexes()
라는 명령어로 현재 콜렉션에 인덱스가 뭐가 있는지 볼 수 있습니다.
db.system.indexes.find()
라는 명령어로는 현재 데이터베이스에 있는 모든 인덱스를 볼 수 있습니다.
인덱스를 만들때는
db.콜렉션이름.ensureIndex({ })
이렇게 만들어주면 됩니다.
위는 empno로 인덱스를 만들었고 1의 뜻은 asc로 만드는것입니다.
-1로 하면 desc로 만들어 지게 됩니다.
db.system.indexes.find()
명령어로 현재 만든 인덱스를 볼 수 있습니다.
이렇게도 볼 수 있죠.
find를 할때 끝부분에 .explain() 이라는 명령어를 붙이면
실행계획을 볼 수 있습니다.
위는 empno_1이라는 방금만든 인덱스를 이용한걸 볼 수 있습니다.
인덱스를 삭제할때는 dropIndex로 삭제하면 됩니다.
( ) 안에 {unique : true}를 주면 unique인덱스를 만들 수 있습니다.
이렇게되면 중복값을 허용하지 않게되죠
같은 empno를 가진 데이터를 넣으려하자 에러메세지를 뿌려주는것을 확인할 수 있습니다.
empno에 중복되는 값이 있을때 droupDups:true라는 명령어를 주고 유니크인덱스를 만들면
중복되는 empno중에 최초로 만들어진 empno만 남고 나머지는 자동으로 삭제되게 됩니다.
'컴퓨터 > mongoDB' 카테고리의 다른 글
[mongoDB]몽고디비 데이터모델링 설계 (0) | 2014.08.08 |
---|---|
[mongoDB]Geospatial index,GeoMetry index 몽고디비 인덱스 (0) | 2014.08.06 |
[mongoDB]몽고디비 사용자 인증 (0) | 2014.08.06 |
[mongoDB]Mapreduce 몽고디비 맵리듀스 (0) | 2014.08.05 |
[mongoDB]몽고디비 aggregate (2) | 2014.08.05 |
댓글