카테고리 없음

DB) 인덱스란?

STUFIT 2024. 7. 18. 00:59
반응형

데이터베이스 인덱스는 특정 컬럼에 대한 데이터의 빠른 조회를 가능하게 하는 데이터 구조를 뜻한다.

인덱스를 생성하면 데이터베이스는 해당 컬럼의 값을 기준으로 별도의 데이터 구조(일반적으로 B-Tree 또는 Hash)를 생성하여 데이터를 정렬하고 저장하게 된다. 이를 통해 데이터 검색 시 테이블의 모든 행을 스캔하는 대신, 인덱스를 사용하여 필요한 데이터를 빠르게 찾을 수 있다.

주요 장점:

  1. 향상된 검색 속도: 인덱스가 적용된 컬럼에 대해 검색할 때, 데이터베이스는 인덱스를 사용하여 빠르게 데이터를 찾을 수 있게된다. 이는 특히 대용량 데이터베이스에서 중요한 성능 향상을 제공하게 된다.
  2. 정렬 및 그룹화 성능 향상: 인덱스를 사용하면 ORDER BY나 GROUP BY와 같은 쿼리의 성능도 향상된다. 데이터베이스는 이미 정렬된 인덱스를 사용하여 결과를 빠르게 생성할 수 있다.
  3. 고유성 제약 조건 지원: 인덱스를 사용하여 특정 컬럼의 값을 고유하게 유지할 수 있다. 예를 들어, 기본 키(Primary Key)나 유니크 키(Unique Key)를 설정할 때 인덱스가 사용된다.

주의할 점:

  1. 추가적인 저장 공간 필요: 인덱스를 생성하면 추가적인 저장 공간이 필요하다. 이는 특히 여러 개의 인덱스를 생성하는 경우 디스크 사용량이 증가할 수 있다.
  2. 쓰기 성능 저하: 데이터 삽입, 업데이트, 삭제 작업 시 인덱스를 갱신해야 하기 때문에 쓰기 작업의 성능이 저하될 수 있다. 따라서 자주 변경되는 컬럼에 대한 인덱스 생성은 신중하게 정해야 한다.
  3. 인덱스 관리: 인덱스는 주기적으로 재구성하거나 재구축하여 최적의 성능을 유지해야 한다. 특히 큰 테이블에서는 인덱스 조각화가 발생할 수 있다.
반응형