저장소 logo 저장소

1. Index 개념

Index.
데이터베이스에서 검색 성능을 향상시키기 위한 자료구조.

테이블의 특정 컬럼 값을 기준으로 데이터의 위치 정보를 빠르게 찾을 수 있도록 정렬된 구조를 유지하는 방식.

일반적인 RDBMS(MySQL, PostgreSQL, Oracle 등)에서는 B+Tree 구조의 인덱스를 사용하여 검색 성능을 향상.


2. Index 동작 원리

Index는 책의 색인(index)과 유사한 구조.

책에서 특정 단어를 찾을 때 처음 페이지부터 끝까지 읽지 않고
색인을 통해 해당 단어가 있는 페이지를 바로 찾는 방식과 동일한 개념.

데이터베이스에서도 특정 조건으로 데이터를 검색할 때 다음 두 가지 방식 존재.

방식 설명
Full Table Scan 테이블 전체 데이터를 처음부터 끝까지 탐색
Index Scan 인덱스를 이용하여 필요한 데이터 위치만 빠르게 탐색

Index가 존재하면 SELECT ... WHERE 조건 검색 시
Full Table Scan 대신 Index Scan을 사용하여 검색 속도 향상.


3. Index 구조

Index는 특정 컬럼을 기준으로 다음 정보를 저장.

즉 인덱스는 Search Key, Row Pointer 형태의 구조를 가지며 테이블 데이터보다 훨씬 작은 크기의 정렬된 구조로 관리.

대표적인 인덱스 자료구조

대부분의 RDBMS에서는 B+Tree 기반 인덱스 사용.


4. Index 유형

클러스터형 인덱스 (Clustered Index)

테이블 자체가 인덱스 순서로 정렬되는 구조.

특징

예시


보조 인덱스 (Secondary Index)

테이블 데이터와 별도로 추가적인 인덱스 구조 생성.

특징

예시


5. Index 장단점

구분 내용
장점 검색 속도 향상 (특히 SELECT WHERE 조건 검색)
단점 추가 저장 공간 필요
단점 INSERT / UPDATE / DELETE 시 인덱스 갱신 비용 발생

데이터 변경 작업이 많을 경우 인덱스 구조(B+Tree)가 재구성되면서 성능 저하 가능성.


6. Index 사용 상황

Index는 다음과 같은 경우에 효과적.

반대로 다음 경우에는 효과가 적음.


핵심 정리

Index

  • 데이터 검색 성능을 향상시키기 위한 자료구조
  • 대부분의 RDBMS에서 B+Tree 구조 사용

장점

  • SELECT WHERE 조건 검색 속도 향상

단점

  • 추가 저장 공간 필요
  • INSERT / UPDATE / DELETE 시 성능 비용 발생

« 데드락
Index Column »