인덱스(Index)_(2)

추성결·2024년 6월 11일
0

어제 인덱스를 지정하면 검색 속도가 향상된다는 것을 배워 팀 프로젝트 "Toogether"에 적용해보았다. 내가 궁금했던 점은 대용량 데이터를 쌓은 테이블이 없으니, '데이터가 적을때 얼마나 느려지는가' 이다.

테스트 코드

  • 테스트 진행은 프론트에서 서버에 API요청을 하고, 다시 프론트에서 응답을 받을때까지의 걸리는 시간을 측정했다. 아래 코드는 테스트를 작성한 코드이다.
    export async function getMyAllCalendar() {
      if (useCalendarListStore.getState().isLoaded) return;

      const startTime = Date.now(); // 호출 시간 지정

      try {
        const { data: res } = await API.get(`/calendar/get_calendar/v2`);
        if (!res) throw new Error('CALENDAR - getAllCalendar (db 조회 실패)');

        const endTime = Date.now(); // 응답 받은 시간

        console.log(`API 요청 처리 시간: ${endTime - startTime}ms`); // 총 소요 시간

        ...

인덱스 지정 전 소요 시간

약 70~160ms의 시간이 소요됐다.

인덱스 지정 후 소요시간

약 200~300ms의 시간이 소요됐다.

결론

  • 데이터 수가 적을 때, 인덱스 지정 후 검색 성능이 약 117.39%의 시간 소요가 증가됐다. 데이터 양이 적을 때는 인덱스를 지정하여 인덱스부터 찾게 하는것이 아닌, RDB의 내부에 있는 캐싱기능을 활용 또는 풀스캔을 하는 것이 좀 더 나은 방향인 것 같다.

0개의 댓글