단일 키 인덱스
복합키 인덱스
- 둘 이상의 키를 사용하는 인덱스
- 복합 인덱스는 필드의 순서가 중요하다 (RDBMS도 마찬가지지만..)
- JSON이라고 해서 필드 순서가 중요하지 않은건 아니다
인덱스 효율
쿼리 성능을 위해서는 인덱스가 반드시 필요하지만, 인덱스는 유지비용이 발생한다.
- 도큐먼트를 추가/수정/삭제 할 때마다 인덱스를 갱신해야하기 때문이다.
- 읽기 연산 위주의 어플리케이션에서 인덱스 비용은 인덱스로 인한 읽기 성능에 의해 상쇄된다.
- 사용하지 않는 인덱스는 중복되지 않도록 주의한다.
- 또한 인덱스는 메모리 공간에 상주할 수 있도록 여유 메모리가 있어야한다
자주 사용하는 쿼리에 대해 커버링 인덱스(covering index)를 사용할 수 있는지 고려해보자