본문 바로가기
컴퓨터/mongoDB

[mongoDB]index 몽고디비 인덱스

by TEATO 2014. 8. 6.
반응형

[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만 남고 나머지는 자동으로 삭제되게 됩니다.




반응형

댓글