SPRING

[Spring] 인덱싱

도원좀비 2025. 4. 9. 20:05

🎯 인덱스란?

인덱스(Index)는 데이터베이스가 특정 컬럼을 기준으로 더 빠르게 데이터를 찾을 수 있도록 도와주는 구조


📊 인덱스가 없으면?

  • 조건문 없이 테이블 전체를 스캔해야 함
  • 데이터가 많을수록 시간이 기하급수적으로 늘어남
  • 성능 저하, 페이지 응답 지연, 서버 부하 증가

✅ 언제 인덱스가 효과적일까?

사용 조건 인덱스 효과
WHERE 조건에 자주 사용되는 컬럼 매우 효과적
ORDER BY 정렬 기준 효과 있음
JOIN 조건 컬럼 있음
LIKE 'abc%' 가능
LIKE '%abc' 효과 없음 (앞에 %가 있으면 인덱스 무시됨)

⚙️ JPA에서 인덱스 적용 방법

@Entity
@Table(name = "news_feeds", indexes = {
    @Index(name = "idx_news_title", columnList = "title"),
    @Index(name = "idx_news_content", columnList = "content"),
    @Index(name = "idx_news_updated_at", columnList = "updated_at")
})
public class NewsFeedEntity {
    ...
}

'SPRING' 카테고리의 다른 글

[SPRING] 뉴스피드 과제 인덱스 성능 실험  (1) 2025.04.13
[Spring] 스프링 테스트 코드  (3) 2025.04.10
[Spring] N+1  (1) 2025.04.09
[SPRING] Spring Security + JWT 인증 예외 처리 흐름  (1) 2025.04.01
[SPRING] JWT  (2) 2025.04.01