Challenges/정보처리기사

[정보처리기사]3.데이터베이스 구축/물리 데이터베이스 설계/인덱스, 클러스터

뚱요 2021. 9. 17. 00:00
반응형

1. 인덱스(Index) 

1.1  인덱스의 개념 및 선정기준, 고려사항

- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터>쌍으로 구성된 데이터 구조

1.2 인덱스 컬럼 선정

-인덱스 컬럼의 분포도(Selectivity)가 10~15% 이내인 컬럼

-가능한 한 수정이 빈번하지 않는 컬럼

-ORDER BY, GROUP BY, UNION빈번한 컬럼

(1) 인덱스 컬럼 유형 선정

-단독 인덱스 : 분포도가 좋은 컬럼으로 생성

-결합 인덱스 : 인덱스들이 자주 조합되어 사용되는 컬럼들로 생성

1.3 설계 시 고려사항 

-새로 추가되는 인덱스는 기존 엑세스 경로에 영향을 미칠 수 있음

-지나치게 많은 인덱스 오버헤드(Overhead) 발생

-넓은 범위 인덱스 처리 시 오히려 전체 처리보다 많은 오버헤드를 발생시킴

-인덱스만의 추가적인 저장 공간이 필요

-인덱스와 테이블 데이터의 저장 공간이 분리되도록 설계

1.4 인덱스 종류

  • 클러스터드형 인덱스(Clustered Index): 테이블 자체가 인덱스로 1개만 설정 가능,   데이터 입력, 수정, 삭제 시 항상 정렬을 유지
  • 비클러스터드형 인덱스(Non-Clustered Index):  인덱스 페이지를 따로 구분하며 데이터 자체는 정렬되지 않고, 인덱스 페이지에만 정렬,  인덱스 키값만 정렬,
    삽입, 삭제 발생 시 순서 유지를 위해 데이터 재정렬 필요
  • 트리 기반 인덱스: 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것
  • 함수 기반 인덱스: 컬럼에 특정 함수나 수식을 적용해 산출된 값을 사용하는 것
  • 비트맵 인덱스: 인덱스 컬럼의 데이터를 Bit 값인 0, 1로 변환해 인덱스 키 사용
  • 비트맵 조인 인덱스: 다수의 조인된 객체로 구성된 인덱스
  • 도메인 인덱스: 개발자가 필요한 인덱스를 직접 만들어 사용하는 것 (확장형 인덱스)

2. 클러스터(Cluster)

- 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법

2.1 클러스터 특징

- 인덱스를 사용한 처리 부담이 되는 단점을 해결한 기법으로 넓은 분포도(Selectivity)에 활용(넓을수록 유리함)

- 분포도가 넓은 테이블의 클러스터링은 저장 공간의 절약이 가능

- 대량의 범위자주 액세스(조회)하는 경우 적용 (생성, 업데이트, 제거가 빈번한 경우에는 좋지 않음)

 

2.2 클러스터 테이블 선정기준

컬럼의 분포도를 제외하고 인덱스 컬럼 선정기준과 동일

-수정이 빈번하지 않는 테이블

-ORDER BY, GROUP BY, UNION이 빈번한 테이블 

(1) 클러스터 테이블 유형 선정

-단일 테이블 클러스터링처리 범위가 넓어 문제가 발생하는 경우 사용

-다중 테이블 클러스터링  : 조인이 많아 문제가 발생되는 경우는 사용

2.3 설계 시 고려사항

-클러스터링 된 테이블은 조회 속도를 향상시켜주지만 입력, 수정, 삭제 시 성능이 저하됨(부하 증가)

-대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하는 일이 자주 발생하므로 클러스터링을 하지 않는 것이 좋음

-클러스터링 된 테이블에 클러스터드 인덱스를 생성하면 접근 성능이 향상

 

[정보처리기사 ] 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

반응형