로고
로그인

Database Index 추가의 장단점

by ksc036·2025. 05. 22. 오전 1:50

✅ 인덱스(Index)의 장점

  1. 조회 성능 향상 (SELECT 속도 증가) 인덱스는 정렬된 자료구조(B-Tree 등)를 사용하기 때문에 전체 테이블을 순회하지 않고도 원하는 값을 빠르게 찾을 수 있습니다.

특히 다음과 같은 조건에서 효과적입니다:

WHERE 절 (예: WHERE name = '홍길동')

ORDER BY

JOIN의 ON 조건

GROUP BY

  1. 중복 방지 기능 (UNIQUE Index) UNIQUE INDEX를 사용하면, 중복된 값이 삽입되지 않도록 보장할 수 있습니다.

예: 사용자 이메일, 주민번호 등에 중복 허용하지 않도록 할 때 사용

  1. JOIN 연산 최적화 JOIN 시 ON에 사용되는 컬럼에 인덱스가 있을 경우, Nested Loop Join 등의 방식에서 성능 향상

  2. 정렬/그룹핑 시 정렬 생략 ORDER BY 또는 GROUP BY에 인덱스가 걸려 있으면, 데이터를 다시 정렬하지 않아도 되기 때문에 속도 향상

❌ 인덱스(Index)의 단점

  1. 쓰기 성능 저하 (INSERT/UPDATE/DELETE 시 오버헤드) 데이터를 추가하거나 수정/삭제할 때, 인덱스도 함께 갱신해야 하기 때문에 성능이 떨어집니다.

특히 많은 컬럼에 인덱스를 걸면 갱신 비용이 커짐

  1. 디스크 공간 사용 증가 인덱스는 별도의 자료구조로 저장되므로, 테이블 크기보다 인덱스 크기가 더 커질 수 있음

다중 인덱스를 걸면 수배로 디스크 공간이 증가할 수 있음

  1. 과도한 인덱스는 쿼리 옵티마이저를 혼란시킬 수 있음 인덱스가 많으면 쿼리 옵티마이저가 어떤 인덱스를 선택할지 판단하는 비용이 증가

오히려 잘못된 인덱스를 선택하여 성능 저하 발생 가능

CS
DB
User profile

ksc036

안녕하세요 개발을 좋아하는 풀스택 개발자입니다.

1개의 댓글

이런 게시글은 어때요?
더 이상 게시글이 없어요! 🎉