[정보처리기사][데이터 입출력 구현] 인덱스 / 뷰 / 클러스터 / 파티션

컴퓨터/정보처리기사

728x90
반응형

인덱스 - Index

데이터 레코드를 빠르게 접근하기 위해 값과 포인터로 구성되는 데이터 구조

  • 레코드가 저장된 물리적 구조에 접근하는 방법을 제공합니다.
  • 따라서 빠르게 레코드에 접근할 수 있습니다.
  • 탐색의 경우에는 인덱스가 효율적이나 삽입과 삭제가 빈번하게 일어나는 경우 비 효율적입니다.

1. 종류

구조와 특징에 따라 아래와 같이 구분할 수 있습니다.

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

 

정렬 방식에 따라 구분할 수 있습니다.

종류 설명
클러스터드 인덱스 키의 순서에 따라 데이터가 정렬되어 저장하는 방식
실제 데이터가 순서대로 저장되어 있어 인덱스를 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있습니다.
논 클러스터드 인덱스의 키 값만 정렬되어 있는 방식 (실제 데이터는 정렬되어 있지 않음)
때문에 데이터 삽입,삭제 시 순서를 유지하기 위해 데이터를 재 정렬해야됨.

 

뷰 - View

가상테이블로서 하나이상의 기본 테이블로부터 유도된다.

  • 물리적으로 존재하지 않는다.
  • 뷰를 통해서만 데이터에 접근하면 뷰에 나타나지 않는 데이터를 안전하고 효율적이게 보호할 수 있다.

1. 특징

  • 장점
    • 논리적 데이터 독립성을 제공할 수 있다.
    • 동일 데이터에 대해 동시에 여러 사용자의 상이한 오용이나 요구를 지원할 수 있다.
    • 사용자의 데이터 관리를 간단하게 할 수 있다.
    • 접근 제어를 통한 자동 보안이 가능하다.
  • 단점
    • 독립적인 인덱스를 가질 수 없다.
    • 뷰의 정의를 변경할 수 없다.
    • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신, 연산에 제약이 따른다.

클러스터 - Cluster

데이터 접근의 효율성을 향상하기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법.

  • 조회 속도가 향상된다.
  • 입력, 수정, 삭제는의 속도는 저하된다.
  • 데이터의 분포도가 넓을수록 클러스터링이 효율적이다. (저장공간의 절약)

1. 종류

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

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

 

파티션 - Partition

대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것

  • 대용량 DB의 경우 몇 개의 중요한 테이블에만 집중되어 데이터가 증가된다.
  • 이런 테이블들을 파티션 단위로 나눠 분산시키면 성능 저하 방지 및 데이터 관리에 용의 하다.
  • 데이터 처리는 테이블 단위 / 저장은 파티션별로 수행됩니다.

1. 특징

  • 장점
    • 데이터 접근 시 액세스 범위를 줄여 쿼리 성능이 향상됩니다.
    • 파이션별로 데이터가 분산되어 저장되므로 디스크의 성능이 향상됩니다.
    • 파티션별로 백업 및 복구를 수행하므로 속도가 빠릅니다.
    • 시스템 장애 시 데이터 손상 정도를 최소화할 수 있습니다.
    • 데이터 가용성이 향상됩니다.
    • 파티션 단위로 입, 출력을 분산시킬 수 있습니다.
  • 단점
    • 하나의 테이블을 세분화하기 때문에 관리 난이도가 증가합니다.
    • 테이블 간 조인에 대한 비용이 증가합니다.
    • 용량이 적은 테이블에 파티셔닝을 수행하면 오히려 성능이 저하됩니다.

2. 종류

  • 범위 분할 파티션 - Range Partitioning
    • 지정한 열의 값을 기준으로 분할합니다.
  • 해시 분할 파티션 - Hash Partitoning
    • 해시함수를 적용하여 결과 값을 이용해 데이터를 분할합니다.
    • 고르게 데이터를 분산시킬 수 있습니다.
    • 특정 데이터가 어디에 존재하는지 판단할 수 없습니다.
  • 조합 분할 - Composite Partitioning
    • 범위 분할 후 해시 함수를 적용하여 분할하는 방식입니다.
    • 범위 분할 후에도 파티션이 큰 경우에 유용합니다.

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :