반응형
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 / 실행계획으로 인덱스 사용 여부 꼭 확인
반응형
'IT > DB' 카테고리의 다른 글
MSSQL과 MySQL에서 현재 시간 INSERT하기 (0) | 2024.01.27 |
---|---|
MSSQL에서 테이블 컬럼 추가 및 속성 변경하기 (0) | 2024.01.25 |
MYSQL, MSSQL INSERT INTO ... SELECT 구문 (0) | 2024.01.21 |
[MYSQL] INDEX (0) | 2022.10.19 |
[MYSQL] 외래키 속성 변경, 수정, 삭제 및 조회하기 (0) | 2022.09.28 |