IT/DB

책 목차랑 닮은꼴? 데이터베이스 인덱스(Index)란?

Dev. Sean 2025. 8. 20. 08:09
반응형

1. 인덱스(Index)란 무엇일까?

DB 인덱스는 쉽게 말해 책의 색인(Index) 같은 역할을 합니다.
책을 읽을 때 원하는 단어를 찾으려고 처음부터 끝까지 다 읽지 않죠?

 

👉  맨 뒤에 있는 색인을 보고 바로 해당 페이지로 갑니다.
       데이터베이스 인덱스도 똑같습니다.

👉  테이블 전체를 뒤지는 대신, 인덱스를 따라가면 필요한 데이터를 빠르게 찾을 수 있어요.

 

 

2. 인덱스가 왜 중요한가?

데이터가 수십만 건, 수백만 건이 쌓이면,
인덱스 없이는 Full Table Scan (처음부터 끝까지 검색)이 발생합니다.


👉 검색이 느려져서 “DB 왜 이렇게 느려요?”라는 말이 나오게 되죠.

      인덱스가 있으면 원하는 데이터를 바로 찾아갈 수 있습니다.
      즉, 검색 속도 향상 + 성능 최적화의 핵심이 됩니다.

 

3. 인덱스의 종류

인덱스도 여러 종류가 있습니다.

  • 기본 키 인덱스 (Primary Index) → PK 지정 시 자동 생성
  • 고유 인덱스 (Unique Index) → 중복 방지 (주민번호, 이메일)
  • 클러스터형 인덱스 (Clustered Index) → 데이터 자체가 정렬됨
  • 비클러스터형 인덱스 (Non-Clustered Index) → 별도의 인덱스 구조
  • 복합 인덱스 (Composite Index) → 컬럼 2개 이상 묶음

👉 쉽게 말해, “정렬된 목차 vs 별도 색인 vs 여러 키워드 검색용 색인” 정도로 이해하면 됩니다.

 

4. 인덱스의 장점과 단점

✅ 장점

  • 검색 속도 향상
  • 정렬/집계 빠름

❌ 단점

  • 데이터 변경(INSERT/UPDATE/DELETE) 시 인덱스도 갱신해야 해서 느려질 수 있음
  • 디스크 공간 차지
  • 잘못 만든 인덱스는 오히려 성능 저하

👉 즉, “칼은 잘 쓰면 요리사가 되고, 못 쓰면 흉기가 된다”는 말처럼
인덱스도 전략적으로 사용해야 합니다.

 

5. 인덱스 잘 쓰는 꿀팁

  • 자주 검색되는 컬럼에 걸기 (예: user_id, email)
  • 데이터 분포가 다양한 컬럼이 효과적 (예: 주민번호, 이름 → Good / 성별, YN → Bad)
  • SELECT 위주 테이블에 유리
  • EXPLAIN / 실행계획으로 인덱스 사용 여부 꼭 확인
반응형