etc./정보처리기사

인덱스 / 뷰 / 클러스터 / 파티션

innit 2021. 9. 3. 17:01

인덱스

 

 

인덱스는 데이터에 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조입니다. 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적입니다. 인덱스의 종류는 다음과 같습니다.

 

트리 기반
인덱스
비트맵
인덱스
함수 기반
인덱스
비트맵 조인
인덱스
도메인
인덱스
인덱스를 저장하는
블록들이 트리 구조
인덱스 컬럼의 데이터가
Bit 값(0 또는 1)
컬럼에
함수나 수식을 적용
다수의 조인된 객체로
구성된 인덱스
개발자가 직접 만든
인덱스

 

클러스터드 인덱스 넌클러스터드 인덱스
- 인덱스 키의 순서에 따라 데이터가 정렬되는 방식
- 인덱스를 검색하지 않아도 원하는 데이터 찾을 수 있음
- 인덱스의 키 값만 정렬되어 있는 방식
- 데이터 삽입, 삭제 시 데이터를 재정렬해야 함

 

 

 

 


 

는 하나 이상의 기본 테이블로부터 유도된 가상 테이블입니다. 뷰의 특징과 장단점은 아래와 같습니다.

 

- 물리적으로 존재하진 않지만 사용자에게는 존재하는 것처럼 보입니다.

- 뷰를 통해서만 데이터에 접근하게 하면, 뷰에 나타나지 않는 데이터를 안전하게 보호할 수 있습니다.

- 테이블이나 뷰를 삭제할 때, 그 테이블이나  뷰를 기초로 정의된 다른 뷰도 자동으로 같이 삭제됩니다.

 

 

장점 단점
- 논리적 데이터 독립성 제공
- 동일 데이터에 대해 동시에 여러 사용자의 상이한 요구를 지원
- 사용자의 데이터 관리를 간단하게 해줌
- 자동 보안
- 독립적인 인덱스를 가질 수 없음
- 뷰의 정의를 변경할 수 없음
- 뷰로 구성된 내용은 삽입, 삭제, 갱신 시 제약이 따름

 

 

 

 

 


클러스터

 

클러스터는 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법입니다. 클러스터는 아래와 같은 특징을 갖습니다.

 

- 데이터 조회 속도를 향상시킵니다.

- 입력, 수정, 삭제 작업 성능이 저하됩니다.

- 클러스터는 데이터 분포도가 넓을수록 유리합니다.

- 단일 테이블 클러스터링 : 처리 범위가 넓은 경우

- 다중 테이블 클러스터링 : 조인이 많이 발생하는 경우

 

 

 

 


파티션

 

파티셔닝은 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말합니다. 대용량 DB에서 몇 개의 테이블에만 집중되는 경우, 이런 테이블들을 작은 단위로 나눠 분산시키면 성능 저하를 방지할 수 있습니다.

 

파티션의 장단점은 다음과 같습니다.

장점 단점
- 데이터 접근 시 액세스 범위가 줄어들어 쿼리 성능 향상
- 디스크 성능 향상
- 백업 및 복구 속도 향상
- 시스템 장애 시 데이터 손상 최소화
- 데이터 가용성 향상
- 입출력 분산 가능
- 세심한 관리가 요구됨
- 테이블간 조인 비용 증가
- 용량이 작은 테이블을 파티셔닝하면 오히려 성능 저하 

 

 

 

 

파티션의 종류는 다음과 같습니다.

범위 분할 해시 분할 조합 분할
열의 값을 기준으로 분할 해시 함수 결과 값에 따라 분할
데이터가 고르게 분산됨
범위 분할 + 해시 분할

 

 

 

 

※ 작업 단위

 

- 데이터 처리 : 테이블 단위

- 데이터 저장 : 파티션 단위

 

 

 

 

728x90
반응형