DB에서 인덱스를 잘 사용하면 어떤 장점이 있을까요?
DB의 인덱스란, 조회의 성능을 높이기 위해 사용하는 장치이다.
조회가 일어날 수 있는 컬럼을 따와 정렬한 상태로 보관하고 있는다.
원래는 백만 개의 데이터가 보관된 DB에서 특정 필드가 100인 데이터를 찾아낸다고 할 때, 백만 개의 데이터를 모두 하나하나 확인해야 한다.
하지만 해당 필드가 정렬이 되어있는 상태라면 검색의 절대적인 횟수가 줄어든다.
순차적으로 검색을 해나가든, 이진 탐색을 사용하든 처음 100을 찾고나면 그 앞뒤로 확인하여 값이 100인 데이터 리스트를 뽑을 수 있다.
단점으로는, 모든 필드에 대해 인덱스를 만들면 이에 따른 저장공간의 낭비가 심해질 수 있다.
또한 데이터 삽입이나 삭제, 기존 데이터에 변화가 빈번한 경우에는 그에 맞추어 새로 정렬하는 작업이 필요하기 때문에 잘못 사용하는 경우에는 오히려 효율이 떨어질 수도 있다.