인덱싱이 뭘까?

인덱싱은 데이터베이스에서 데이터 검색 속도를 향상시키기 위한 중요한 개념입니다.

데이터베이스 내의 레코드를 효율적으로 찾기 위한 구조로, 데이터베이스 테이블의 컬럼에 대한 추가 데이터 구조를 

생성하는 것으로 이해할 수 있습니다. 이 구조를 통해 데이터베이스 엔진은 검색 연산을 더 빠르게 수행할 수 있습니다

 

1. 인덱스 키(Index Key)

인덱스는 테이블의 열에 대한 값을 포함하며, 이를 인덱스키라고 합니다.

인덱스는 정렬되어 있으므로 검색 시에 이진 검색(Binary Search)과 같은 효율적인 알고리즘을 사용할 수 있습니다

 

2. 검색 속도 향상 

인덱스를 사용하면 데이터베이스 엔진은 해당 인덱스를 통해 원하는 데이터를 빠르게 찾을 수 있습니다.

인덱스를 사용하지 않으면 전체 테이블을 스캔해야 하므로 검색 속도가 느려질 수 있습니다

 

3. 유일한 키(Unique Key)

인덱스는 유일한 값만 포함할 수 있으며, 이를 통해 특정 열의 데이터 중복을 방지할 수 있습니다.

이러한 유일한 키를 기본키(Primary Key) 또는 고유 인덱스(Unique Index)로 설정할 수 있습니다

 

4. 클러스터드 인덱스와 비클러스터드 인덱스 

클러스터드 인덱스는 테이블의 데이터 행 자체를 재배치하여 인덱스 순서와 데이터 행 순서를 일치시킵니다.

비클러스터드 인덱스는 데이터 행의 물리적 순서를 변경하지 않고 인덱스만 정렬합니다.

테이블 당 하나의 클러스터드 인덱스만 가질 수 있지만 여러개의 비클러스터드 인덱스를 가질 수 있습니다.

 

5. 인덱스 선택

어떤 열에 인덱스를 생성할지 결정하는 것은 중요한 설계 결정입니다. 검색 및 조인 연산이 빈번하게 발생하는 

열에 인덱스를 생성하는 것이 일반적입니다. 그러나 인덱스를 지나치게 많이 생성하면 데이터 삽입, 갱신, 삭제 작업의 성능에

영향을 줄 수 있으므로 조심해야 합니다.

 

6. 조인 최적화

인덱스는 조인연산의 최적화에도 사용됩니다. 조인 시에 조인 조건에 있는 열에 인덱스가 있으면

데이터베이스는 효율적으로 조인 작업을 수행할 수 있습니다.

+ Recent posts