🎯 인덱스란?
인덱스(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 {
...
}