[Database] 인덱스(Index)란? - 인덱스 정의와 특징, 생성, 삭제 코드

728x90

 

 

💡 인덱스(Index)란?

인덱스(Index)는 책의 색인과 비슷하게 작동하여, 데이터를 빠르게 찾을 수 있도록 돕는 데이터 구조입니다.

인덱스는 SQL 질의의 성능을 향상시키는 데 중요한 역할을 합니다.

인덱스는 데이터 베이스 테이블의 한 열 또는 여러 열의 값에 대한 포인터를 유지합니다. 인덱스를 사용하면 전체 테이블을 스캔하지 않고도 레코드를 빠르게 검색할 수 있습니다. 

 

 

📌 인덱스(Index)의 특징

1. 테이블의 데이터에 대한 포인터를 저장합니다.

2. 인덱스는 데이터를 빠르게 검색하는 데 사용됩니다.

3. 인덱스는 테이블의 한 열 또는 여러 열에 대해 생성될 수 있습니다.

4. 인덱스는 B-Tree, Bitmap, Hash 등 다양한 데이터 구조를 사용할 수 있습니다.

 

 

🍀 인덱스의 장단점

장점

1. 데이터 검색 속도 향상 : 인덱스를 사용하면 데이터베이스 엔진이 테이블의 모든 행을 검색하지 않아도 되므로 검색 속도가 향상됩니다.

2. 정렬된 데이터 접근 : 인덱스는 데이터를 정렬된 형태로 저장하므로, 정렬된 데이터에 대한 작업이 더 빠릅니다.

3. 집계 및 그룹 연산 속도 향상 : 인덱스를 사용하면 데이터의 집계 및 그룹화 연산이 더 빠르게 수행됩니다.

 

단점

1. 공간 사용 : 인덱스는 디스크 공간을 사용합니다. 많은 인덱스를 생성하면 많은 디스크 공간이 필요합니다.

2. 데이터 수정 시 성능 저하 : 테이블의 데이터가 변경될 때마다 인덱스도 업데이트해야 하므로, 데이터의 삽입, 삭제, 수정(갱신) 연산이 느려질 수 있습니다.

3. 인덱스 관리 오버헤드 : 데이터 베이스는 인덱스를 유지하기 위해 추가 작업을 수행해야 합니다. 이로 인해 데이터베이스의 성능에 영향을 줄 수 있습니다.

 

 

🖊️ 인덱스의 사용 방법

SQL에서 인덱스는 CREATE INDEX, DROP INDEX 명령을 사용하여 생성하고 삭제 할 수 있습니다.

예를 들어, Employees 테이블의 LastName 열에 인덱스를 생성하려면 다음과 같이 SQL 명령을 작성할 수 있습니다.

CREATE INDEX idx_lastname
ON Employees (LastName);

이 명령은 LastName열의 값을 기반으로 인덱스를 생성하며, 인덱스의 이름은 idx_lastname입니다.

인덱스를 삭제하려면 다음과 같이 DROP INDEX 명령을 사용합니다.

 

DROP INDEX idx_lastname;

이 명령은 idx_lastname 인덱스를 삭제 합니다.

 

728x90