프로젝트 회고

Optimizer 中 인덱스 여부에 따른 검색 속도 향상

iksadnorth 2023. 11. 27. 13:05

👣 개요

인덱스의 여부에 따른 검색 속도 향상 여부를 확인하는 실험.

 

👣 실험 계획

Item은 name에 인덱스가 부여되지 않았고 
해당 Item 테이블의 Row 갯수는 100만 개 입니다.

실험을 위해 사용된 코드는 위와 같이 Name 칼럼을 기준으로 검색하는 메서드다.

실험에 사용되는 테스트 코드는 위와 같이
순차적으로 N번 메서드를 호출하고 해당 실행 시간을 확인하는 형태로 진행된다.

 

👣 실험 수행

⚗️ 대조군 - 인덱스 없이 검색

우선 100번 정도 메서드를 호출했을 때의 결과다.

20129 ms, 즉 20.129초가 걸림을 알 수 있다.
겨우 100번 호출했음에도 불구하고 20초나 걸린다는 것을 알 수 있다.

 

⚗️ 실험군 - 인덱스 생성 후 검색

인덱스를 만들기 위해 다음과 같은 쿼리를 실행한다.

100만 개의 데이터가 있는 테이블의 인덱스를 생성하는데 대략 5.5초가 소요된다.

그런 다음, 100번 정도 다시 메서드를 호출했을 때의 결과다.

571 ms, 즉 0.571초가 걸림을 알 수 있다.
엄청난 성능 상승효과를 맛볼 수 있었다.

 

👣 실험 결과

결과적으로 인덱스로 인한 검색 속도 향상은 어마어마한 이점을 가져다 주었고 표로 정리하면 다음과 같다.

  특징 수행 시간 향상 효과
대조군 인덱스 X 20129 ms -
실험군 인덱스 O 571 ms 97.16% 감소