Search

Index 개념 및 사용 사례

인덱스
인덱스는 데이터베이스에서 특정 조건을 만족하는 데이터를 빠르게 찾기 위해 사용하는 자료구조입니다.
예를 들어, 100만 개의 데이터 중에서 first name이 '민수'인 사람을 찾는 쿼리가 있을 때, 인덱스가 없다면 모든 데이터를 하나씩 확인해야 합니다. 이를 "풀스캔(Table Scan)"이라고 하며, 이 경우 시간 복잡도는 O(n)입니다.
하지만 first name에 인덱스가 걸려 있다면, 비트리(B-tree) 같은 자료구조를 통해 데이터를 훨씬 더 빠르게 찾을 수 있습니다. 이때 시간 복잡도는 O(log n)으로 줄어들어 성능이 크게 향상됩니다.

인덱스의 주요 사용 사례

1.
데이터 조회: 조건을 만족하는 데이터를 빠르게 찾기 위해 인덱스를 사용합니다.
2.
정렬 및 그룹화: 데이터를 빠르게 정렬하거나 그룹화하는 데에도 인덱스가 사용됩니다.

인덱스 생성 방법

CREATE TABLE Players ( id INT PRIMARY KEY, name VARCHAR(255), team_id INT, jersey_number INT );
SQL
복사
CREATE INDEX idx_name ON Players(name);
SQL
복사
CREATE UNIQUE INDEX idx_team_jersey ON Players(team_id, jersey_number);
SQL
복사

인덱스 조회와 활용

SHOW INDEX FROM Players;
SQL
복사

인덱스 사용의 주의점

인덱스는 성능을 향상시키지만, 남발하면 오히려 성능 저하를 초래할 수 있습니다. 인덱스는 추가적인 저장 공간을 차지하며, 데이터 삽입, 업데이트, 삭제 시마다 인덱스를 갱신해야 하기 때문에 오버헤드가 발생합니다. 따라서, 불필요한 인덱스를 만들지 않는 것이 중요합니다.