문제 상황

차량 업세일(플렉시블 요금) 기능은 일자 구간, 차량 단위로 데이터를 복사하는 프로세서 구조로 구현되어 있었습니다. 대량 데이터 처리로 인해 일자 구간 복사 시 약 3분 이상의 처리 시간이 소요됐습니다.

프로세서 기반 쿼리 분석

EXPLAIN 분석 결과, 루프 내에서 불필요한 SELECT가 반복 실행되고 있었습니다. 조회 조건에 인덱스가 없어 Full Table Scan이 발생하고 있었습니다.

불필요한 SELECT 제거

프로세서 내부에서 존재 여부 확인용 SELECT를 제거하고, INSERT ... ON DUPLICATE KEY UPDATE 구조로 통합했습니다. 루프당 쿼리 횟수가 2회 → 1회로 감소했습니다.

인덱스 적용

복사 대상 데이터의 조회 조건 컬럼(날짜 범위, 차량 ID)에 복합 인덱스를 추가했습니다. Index Range Scan으로 전환되며 I/O가 크게 감소했습니다.

결과

처리 시간 약 3분 → 40~50초로 단축(약 70% 이상 개선). 관리자 설정 작업 속도 개선 및 운영 효율성 향상. 대량 데이터 처리 성능 안정화.