작성자 : 이상훈
작성한 Query Dsl을 기반으로한 동적쿼리는 db에 full scan이 발생하게 되고
db의 데이터 수가 늘어나면 늘어날수록 조회시간은 길어지게 된다.
100만건을 기준으로 약 0.5초에서 1초 가량 걸리는데 이렇게 느린 검색 기능을 이용할 사용자는 아무도 없기에
마치 책처럼 색인을 추가할 수 있는 index 기능을 적용하기로 했다.
데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다.
책으로 예를 들자면 책의 맨 앞 혹은 맨 뒤에 색인이 추가되어 있는걸 볼 수 있는데
데이베이스의 index가 이와 같은 역할을 한다.
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를 적용하지 않은 경우는 책의 목차가 없다고 볼 수 있다.
책의 목차가 없다면 독자는 특정 내용을 찾기 위해 첫페이지부터 끝까지 일일이 내용을 찾게 되고