Database Index 추가의 장단점
by ksc036·2025. 05. 22. 오전 1:50
✅ 인덱스(Index)의 장점
- 조회 성능 향상 (SELECT 속도 증가) 인덱스는 정렬된 자료구조(B-Tree 등)를 사용하기 때문에 전체 테이블을 순회하지 않고도 원하는 값을 빠르게 찾을 수 있습니다.
특히 다음과 같은 조건에서 효과적입니다:
WHERE 절 (예: WHERE name = '홍길동')
ORDER BY
JOIN의 ON 조건
GROUP BY
- 중복 방지 기능 (UNIQUE Index) UNIQUE INDEX를 사용하면, 중복된 값이 삽입되지 않도록 보장할 수 있습니다.
예: 사용자 이메일, 주민번호 등에 중복 허용하지 않도록 할 때 사용
-
JOIN 연산 최적화 JOIN 시 ON에 사용되는 컬럼에 인덱스가 있을 경우, Nested Loop Join 등의 방식에서 성능 향상
-
정렬/그룹핑 시 정렬 생략 ORDER BY 또는 GROUP BY에 인덱스가 걸려 있으면, 데이터를 다시 정렬하지 않아도 되기 때문에 속도 향상
❌ 인덱스(Index)의 단점
- 쓰기 성능 저하 (INSERT/UPDATE/DELETE 시 오버헤드) 데이터를 추가하거나 수정/삭제할 때, 인덱스도 함께 갱신해야 하기 때문에 성능이 떨어집니다.
특히 많은 컬럼에 인덱스를 걸면 갱신 비용이 커짐
- 디스크 공간 사용 증가 인덱스는 별도의 자료구조로 저장되므로, 테이블 크기보다 인덱스 크기가 더 커질 수 있음
다중 인덱스를 걸면 수배로 디스크 공간이 증가할 수 있음
- 과도한 인덱스는 쿼리 옵티마이저를 혼란시킬 수 있음 인덱스가 많으면 쿼리 옵티마이저가 어떤 인덱스를 선택할지 판단하는 비용이 증가
오히려 잘못된 인덱스를 선택하여 성능 저하 발생 가능
CS
DB
이런 게시글은 어때요?
✅더 이상 게시글이 없어요! 🎉
1개의 댓글