어떤 기능인가요?
납부자 목록 조회 쿼리의 정렬 순서와 일치하지 않는 인덱스를 수정합니다.
Payer 엔티티의 기존 인덱스는 (name, enrollment_year) 순서로 정의되어 있습니다. 하지만 실제 납부자 목록 조회는 ORDER BY enrollment_year DESC, name 으로 정렬하기 때문에, 선두 컬럼이 맞지 않아 인덱스가 정렬에 사용되지 못하고 매 조회마다 filesort가 발생합니다.
인덱스 컬럼 순서를 실제 정렬 순서와 동일하게 (enrollment_year DESC, name) 으로 변경해 정렬 비용을 제거합니다.
📝 작업 상세 내용
📁 참고 자료 (선택)
어떤 기능인가요?
Payer엔티티의 기존 인덱스는(name, enrollment_year)순서로 정의되어 있습니다. 하지만 실제 납부자 목록 조회는ORDER BY enrollment_year DESC, name으로 정렬하기 때문에, 선두 컬럼이 맞지 않아 인덱스가 정렬에 사용되지 못하고 매 조회마다 filesort가 발생합니다.인덱스 컬럼 순서를 실제 정렬 순서와 동일하게
(enrollment_year DESC, name)으로 변경해 정렬 비용을 제거합니다.📝 작업 상세 내용
Payer인덱스를idx_payer_name_enrollment_year→idx_payer_enrollment_year_name으로 변경columnList를enrollment_year DESC, name으로 변경해 조회 쿼리 정렬 순서와 일치시킴columnList에 엔티티 필드명이 아닌 실제 DB 컬럼명을 사용하도록 확인📁 참고 자료 (선택)
Payer,PayerRepository.findAllByNameContaining(),PayerService.getAllPayers()