NoSQL 역시 다른 Database, RDBMS처럼 인덱스 설정이 필요합니다. 그렇지 않으면 Slow Query 등 검색, 소팅 단계에서 성능에 큰 차이가 발생할 수 있습니다. 아래는 MongoDB에 인덱스를 설정하는 방법과 조회, 추가 및 관련 예제를 자세히 알아봅니다.




# 인덱스 조회, 확인하기, 인덱스를 조회하기 위해서 getIndexes()를 사용합니다.
> db.collection.getIndexes()

아래와 같이 나타납니다.
[
  {
    'v': 1,
    'key': {
      '_id': 1
     },
     'name': '_id',
     'ns': 'collection'
  }
]




# 인덱스 추가하기, createIndex()원하는 필드명을 사용하여 인덱스를 설정, 추가할 수 있습니다. 인덱스를 설정, 추가하는 방법은 아래와 같이 문법을 적용합니다.

db.collection.createIndex(keys, options)


키에는 필드명과 함께 오름 또는 내림차순에 따라서 1 또는 -1을 함께 설정합니다.


! name 필드의 예만약 name 필드에 대하여 인덱스를 설정하려면?
db.collection.createIndex({ name: 1 })


! 두 개 이상의 필드에 인덱스 설정하기두 개 이상의 필드에 인덱스 설정하는 것도 가능합니다. 우선 순위에 따라 필드 순서를 앞에 위치시킵니다.
db.collection.createIndex({ name: 1, site: -1 })




# 인덱스 삭제하기, dropIndex()아래의 방법으로 설정된 인덱스를 삭제, 제거할 수 있습니다.
db.collection.dropIndex({ key: 1 })


여기까지 MongoDB의 인덱스 설정 방법을 알아보았습니다. 인덱스 설정 여부에 따라 검색에 따른 성능 차이가 현저히 차이나게 됩니다. 간단한 조회라도 자주 사용되는 필드에 대하여 인덱스 설정이 꼭 필요하므로 알아두어야합니다.