기본 패턴
text
CREATE INDEX idx_posts_user_id
ON posts (user_id);설명
- 인덱스는 특정 열 값을 빠르게 찾기 위한 보조 구조입니다.
- 책 뒤의 색인처럼, 테이블 전체를 처음부터 끝까지 훑지 않고도 필요한 위치에 더 빨리 접근하게 도와줍니다.
WHERE,JOIN,ORDER BY에 자주 쓰이는 열은 인덱스 후보가 되기 쉽습니다.- 하지만 인덱스는 읽기 성능만 올리고 끝나는 공짜 구조가 아닙니다. 저장 공간을 더 쓰고,
INSERT나UPDATE시 인덱스도 함께 갱신해야 하므로 쓰기 비용이 늘어납니다. - 따라서 "무조건 많이"가 아니라, 자주 느린 조회가 발생하는 경로를 기준으로 필요한 만큼만 설계하는 편이 좋습니다.
짧은 예제
text
CREATE INDEX idx_posts_created_at
ON posts (created_at DESC);빠른 정리
| 항목 | 의미 |
|---|---|
| 인덱스 | 빠른 조회를 위한 보조 구조 |
| 장점 | 검색, 조인, 정렬 성능 향상 가능 |
| 비용 | 저장 공간 증가, 쓰기 성능 부담 |
| 후보 열 | 자주 필터링하거나 조인하는 열 |
주의할 점
인덱스는 "느린 쿼리가 실제로 있는가"를 보고 추가하는 편이 좋습니다. 처음부터 모든 열에 인덱스를 걸기보다, 실행 계획과 조회 패턴을 보고 필요한 곳에 정확히 두는 것이 더 좋은 운영 습관입니다.
참고 링크
2 sources