Skip to content

student_number 컬럼에 인덱스 추가 - #218

Merged
jyx-07 merged 1 commit into
developfrom
perf/user-student-number-index
Aug 14, 2026
Merged

student_number 컬럼에 인덱스 추가#218
jyx-07 merged 1 commit into
developfrom
perf/user-student-number-index

Conversation

@jyx-07

@jyx-07 jyx-07 commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

#️⃣연관된 이슈

없음

📝작업 내용

  • UserJpaEntitystudent_number 컬럼에 인덱스(idx_tb_user_student_number) 추가
  • SearchUsersServiceImpl(관리자용 학생 검색)에서 학번 범위(BETWEEN) 조건으로 자주 필터링되는 컬럼인데 인덱스가 없어 항상 풀스캔이 발생하던 문제 개선
  • 이 프로젝트는 ddl-auto: update이므로 엔티티의 @Table(indexes = ...)가 곧 실제 스키마에 반영됨

성능 측정

별도 격리된 Postgres 16 컨테이너에 tb_user와 동일한 스키마로 테스트 데이터 50만 건을 시딩하고, searchUsers 쿼리와 동일한 조건으로 EXPLAIN ANALYZE 비교

쿼리: WHERE role <> 'ADMIN' AND name LIKE '%' AND student_number BETWEEN 1101 AND 1199 (한 반 학생 조회, 약 16,500건 매치)

실행 계획 Buffers 실행 시간
인덱스 추가 전 Parallel Seq Scan (전체 50만 건 스캔) shared hit=6662 81.351 ms
인덱스 추가 후 Bitmap Heap Scan (Index Scan 사용) shared hit=497 read=17 3.804 ms

약 21배 빨라짐 (81.4ms → 3.8ms), 조회 페이지 수도 6662 → 514로 약 13배 감소

특정 학번 1명만 조회하는 경우(BETWEEN 2345 AND 2345)는 인덱스 적용 후 1.594 ms로 단일 유저 조회에도 효과 확인

스크린샷 (선택)

💬리뷰 요구사항(선택)

없음

@jyx-07 jyx-07 added 🌟 Status: Reviewing 리뷰 중인 이슈 📩 Type: Feature/Function 새로운 기능 및 개선 사항 labels Aug 3, 2026
@jyx-07 jyx-07 self-assigned this Aug 3, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@jyx-07
jyx-07 requested a review from a team August 3, 2026 06:10
@jyx-07
jyx-07 merged commit 592a2ce into develop Aug 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌟 Status: Reviewing 리뷰 중인 이슈 📩 Type: Feature/Function 새로운 기능 및 개선 사항

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant