📌 인덱스의 필요성
인덱스를 설정하면 테이블 안에서 찾고자 하는 데이터를 빠르게 찾을 수 있습니다.
📌 인덱스의 구조
인덱스는 '트리'라는 자료구조로 이루어져 있습니다.
이는 루트노드와 리프노드 그리고 그 사이에 있는 브랜치 노드로 나뉩니다.
(필요한 정보를 찾기 위해 전체 테이블을 탐색하는 것이 아니라 정보가 있을 법한 리프노드로 들어가 탐색)
📌 인덱스의 효율성
대수확장성이란 트리 깊이가 리프노드 수에 비해 매우 느리게 성장하는 것을 의미합니다.
📌 인덱스의 최적화 기법
- 쿼리에 있는 필드에 인덱스를 무작정 다 설정하면 안됩니다.
- 컬렉션에 가져와야 하는 양이 많을수록 인덱스를 사용하는 것은 비효율적입니다.
- 서비스에서 사용하는 객체의 깊이, 테이블의 양에 따라 최적화 기법은 달라집니다. -> 따라서 테스팅이 중요합니다.
- 복합 인덱스는 같음(==), 정렬, 다중값, 카디널리티(유니크한 값의 정도) 순입니다.