작성자 : 이상훈

B-TREE index를 적용한 이유

작성한 Query Dsl을 기반으로한 동적쿼리는 db에 full scan이 발생하게 되고

db의 데이터 수가 늘어나면 늘어날수록 조회시간은 길어지게 된다.

100만건을 기준으로 약 0.5초에서 1초 가량 걸리는데 이렇게 느린 검색 기능을 이용할 사용자는 아무도 없기에

마치 책처럼 색인을 추가할 수 있는 index 기능을 적용하기로 했다.

인덱스(index)란?

데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.

책으로 예를 들자면 책의 맨 앞 혹은 맨 뒤에 색인이 추가되어 있는걸 볼 수 있는데

데이베이스의 index가 이와 같은 역할을 한다.

인덱스의 장점과 단점

검색 성능 향상 ( 검색기준 : 약 106만건 )

index 적용 X 수행시간(ms)
1회 603ms
2회 582ms
3회 676ms
4회 537ms
5회 594ms
평균 498.6ms
index 적용 O 수행시간(ms)
1회 25ms
2회 29ms
3회 26ms
4회 19ms
5회 14ms
평균 22.6ms

인덱스를 적용할 경우 위와 같은 검색결과를 얻을 수 있다.

책으로 비교를 해보자면 index를 적용하지 않은 경우는 책의 목차가 없다고 볼 수 있다.

책의 목차가 없다면 독자는 특정 내용을 찾기 위해 첫페이지부터 끝까지 일일이 내용을 찾게 되고