게임 개발자를 향해

인덱스(Index) 본문

정보처리기사/2. 데이터 입출력 구현

인덱스(Index)

뿌단이 2022. 9. 13. 16:16

1. 인덱스(Index)

  • 인덱스는 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.
  • 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공한다.
  • 인덱스를 통해서 파일의 레코드에 빠르게 엑세스 할 수 있다.
  • 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효울적이다.

 

<여기서 Tip!>

인덱스는 책의 목차와 같은 것이다.

책의 목차에는 모든 챕터들을 한눈에 볼 수 있게 해주며, 챕터들의 페이지를 알려준다.

이 목차를 이용해 우리는 책을 읽을 때 좀 더 빠르게 정보를 얻을 수 있다.

인덱스도 마찬가지이다. 키값(챕터이름)과 주소(페이지)만을 이용하여 DB의 검색 등의 동작의 속도를 높여주는 역할이다.

위 인덱스의 종류를 알 수 있듯이 인덱스의 자료구조도 여러가지이다.

 

 

2. 인덱스의 종류

종류 내용
트리 기반 인덱스 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것
비트맵 인덱스 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스키로 사용하는 방법
함수 기반 인덱스 컬럼의 값 대신 컬럼에 특정 함수(Function)나 수식(Expression)을 적용하여 산출된 값을 사용하는 것
비트맵 조인 인덱스 다수의 조인된 객체로 구성된 인덱스
도메인 인덱스 개발자가 필요한 인덱스를 직접 만들어 사용하는 것

컬럼(Column) : 열이란 뜻으로 관계형 데이터베이스 용어에서 속성(Attribute)과 같은 의미

 

<여기서 Tip!>

위는 인덱스의 종류들이다.

간단히 설명하면 아래와 같다.

 

트리기반인덱스 : 트리구조를 이루고있는 인덱스

비트맵 인덱스 : 인덱스 컬럼(속성)을 bit(0, 1)로 변환하여 인덱스키로 사용하는 방법

함수 기반 인덱스 : 컬럼(속성)에 함수나 수식을 적용하여 산출된 값을 사용하는것

비트맵 조인 인덱스 : 다수의 조인된 객체로 구성된 인덱스

도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용하는 것

 

 

3. 클러스터드 / 넌클러스터드 인덱스

종류 내용
클러스터드 인덱스
(Clustered Index)
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있음
넌클러스터드 인덱스
(Non - Clustered)
- 인덱스의 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식
- 데이터 삽입, 삭제 발생 시 순서를 유지하기 위해 데이터를 재정렬해야 함

 

<여기서 Tip!>

클러스터드 인덱스는 인덱스의 키값의 순서에 따라 데이터를 정렬한 것을 의미한다.

넌 클러스터드 인덱스는 인덱스의 키값의 순서와 데이터 정렬과는 상관이 없는 것이다.

 

 

읽어주셔서 감사합니다!

정처기 화이팅!

 

 

'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글

파티션(Patition)  (0) 2022.09.13
뷰 / 클러스터 (View / Cluster)  (0) 2022.09.13
트랜잭션 분석  (0) 2022.09.08
시스템 카탈로그  (0) 2022.09.08
반정규화(Denormalization)  (0) 2022.09.08