관리 메뉴

DevBlackCat

정보처리기사 : 물리속성 설계 완전정복!! 본문

정보처리기사/데이터베이스 구축

정보처리기사 : 물리속성 설계 완전정복!!

DevBlackCat 2024. 12. 6. 13:22
728x90

파티셔닝

  • 데이터베이스의 특정부분을 여러 섹션으로 분활 하는방법
  • 조회속도 향상, 관리 용이..
  • 단일데이터 기준

 

샤딩(Sharding)

  • 작은 조각으로 나누어 분산 저장 및 관리하는 기법 (파티셔닝이랑 다른건 분산데이터 사용)
  • 데이터 크기가 클떄 효과적

 

파티셔닝의 장단점

   
장점 데이터 가용성 향상
파티션별 독립적인 백업 및 복구 가능  (작은 조각으로 나눠놨기 떄문에 그부분만 백업)
성능 향상
단점 테이블 간의 조인 비용 증가
테이블과 인덱스는 동일한 파티션 전략을 따라야 함

 

 

① 수평 분할(Horizontal Patitoning)

  • 테이블 행을 기준으로 분할
  • 스키마를 복제한후 샤드키를 기준으로 데이터를 나눈다

② 수직 분할(Vertical Patitoning)

  • 테이블 컬럼을 기준으로 분할
  • 자주 사용하는 컬럼등을 분리시켜 성능을 향상
  • 하나의 테이블을 2개 이상으로 분리

 

 

분할 기준 ★

 

1. 범위 분할 (Range Partitioning)

  • Partition Key의 연속된 범위로 파티션을 정의.
  • 파티션 키 위주로 검색이 자주 실행될 경우 유용.
  • 예시: 월별, 분기별 등.

2. 목록 분할 (List Partitioning)

  • 특정 Partition에 저장될 Data에 대한 명시적 제어.
  • 많은 SQL에서 해당 Column의 조건이 많이 들어오는 경우 유용.
  • 예시:
    • [한국, 일본, 중국 → 아시아]
    • [노르웨이, 스웨덴, 핀란드 → 북유럽]

3. 해시 분할 (Hash Partitioning)

  • 파티션 키 값에 해시 함수를 적용하고, 거기서 반환된 값으로 파티션 매핑.
  • 데이터가 모든 파티션에 고르게 분산되도록 DBMS가 관리.
  • 병렬 처리 시 성능 효과 극대화.

4. 라운드 로빈 분할 (Round Robin Partitioning)

  • Data를 균일하게 분배해서 저장하는 방식.

5. 합성 분할 (Composite Partitioning)

  • 위의 기술들을 복합적으로 사용하는 방법.
  • 예시: 범위 분할 후 분할된 데이터를 해시 분할하는 방식 등.

 

클러스터 설계

  • 자주사용되는테이블의 데이터를 디스크상 동일한 위치에 저장하여 효율을 향상시키는 물리적 저장 방법
  • (자주 가는 가게가 서울 , 부산 인것보다 둘다 서울에 있으면 시간이 덜걸리듯이)

특징

  • 그룹화된 데이터는,디스크 I/O 최소화
  • 조인성능 향상
  • 데이터의 분포도가 넓을 경우 유리
  • 인덱스 생성시 성능향상

인덱스

  • 검색 속도 향상을 위한 저장공간 활용 구조

1. 클러스터 인덱스 (Clustered Index)

  • 테이블당 1개만 허용되며, 해당 컬럼을 기준으로 테이블이 물리적으로 정렬됨.
  • 데이터는 기본적으로 오름차순으로 정렬 진행.
  • 기본 키를 설정하면 자동으로 클러스터드 인덱스가 적용.
  • 인덱스 자체의 리프 페이지가 곧 데이터.
  • 데이터 입력, 수정, 삭제 시 항상 정렬 상태를 유지.
  • 비클러스터형 인덱스보다 검색 속도는 빠르지만, 데이터 입력, 수정, 삭제 시에는 느림.

2. 넌클러스터 인덱스 (Non-Clustered Index)

  • 테이블당 약 240개의 인덱스 생성 가능.
  • 레코드의 원본은 정렬되지 않고, 인덱스 페이지만 정렬.
  • 인덱스 자체의 리프 페이지는 데이터가 아니라 데이터 위치를 나타내는 포인터(RID).
  • 클러스터형보다 검색 속도는 느리지만, 데이터 입력, 수정, 삭제는 더 빠름.

3. 밀집 인덱스 (Dense Index)

  • 데이터 레코드 각각에 대해 하나의 인덱스가 만들어짐.

4. 희소 인덱스 (Sparse Index)

  • 레코드 그룹 또는 데이터 블록에 대해 하나의 인덱스가 만들어짐.

 

인덱스 구조 

  • 트리 기반 인덱스
  • 비트맵 인덱스
  • 함수 기반 인덱스
  • 비트맵 조인 인덱스
  • 도메인 인덱스

 

 인덱스 컬럼의 선정

  • 분포도가 좋은 컬럼을 선택 (10%~15%).
  • 자주 조합되어 사용되는 경우 결합 인덱스를 생성.
  • 가능한 수정이 빈번하지 않은 컬럼을 선정.
  • 한 컬럼이 여러 인덱스에 포함되지 않도록 설계.
  • 기본키 및 외부키가 되는 컬럼을 선정.

 

 

  • 기본테이블에 유도된 가상테이블
  • 실제 데이터를 저장하지않고 논리적으로만 존재
  • 사용자는 뷰를 조작가능

뷰(View)의 개념

  • 기본 테이블을 유도하여 기본 테이블과 유사한 형태와 조작을 가진다.
  • 물리적 구현 없는 가상 테이블.
  • 논리적 데이터 독립성 제공.
  • 관리 용이 및 명령문 간소화 (필요한 데이터만 처리).
  • 뷰를 통한 데이터 접근으로 안전 보호.
  • 데이터 조작(삽입, 삭제, 갱신)에 제한 존재.
  • 기본 테이블/뷰 삭제 시 관련 뷰도 자동 삭제.
  • 생성은 CREATE, 삭제는 DROP 명령으로 가능.

뷰의 장/단점

장점

  • 논리적 데이터 독립성.
  • 다양한 사용자 요구에 대한 동시 지원.
  • 간결한 데이터 관리.
  • 자동 보안 제공 (접근 제어).

단점

  • 독립적 인덱스 부재.
  • ALTER VIEW 사용 불가.
  • 뷰 조작(삽입, 삭제, 갱신 등)에 제약 존재.

백업

용어 설명
풀 이미지 백업 - 전체 데이터 백업
차등 백업  - 마지막 풀 이미지 백업 이후, 모든 변경사항을 백업
증분 백업-   - 마지막 풀 이미지 백업 이후, 점차적으로 변경된 사항 백업
실시간 백업 - 변경사항을 즉시 백업, 분리된 스토리지에 실시간 복사 (장비 두대)
합성 백업 - 기본백업 + 후속 증분 백업으로 전체 백업 구성/통함

 

 

풀 이미지 백업

차등 백업

증분 백업

 

차등백업은 최초 풀 이미지 백업이후 변경사항을 하나로 저장하지만

증분 백업은 각각 하루 별로 변경사항을 저장한다.

 

 

재난 복구 전략 시 성과 지표

용어 설명
RTO - 업무 중단 부터 복구 및 재가동이 목표
- 업무 중단을 얼마나 허용할지 시간 (시간)
RPO  - 재해 발생후 데이터 손실 범위
- 데이터 손실을 얼마나 감당할지 시점 (데이터)
MTD - 업무 중단의 최대 시간

 

RTO는 복구할수있는 목표시간이고, MTD는 장애를 허용하는 최대 시간으로 비슷하지만 기준이 조금 다름

그외 RP가 있는데 RP는 실제 업부 기능 복구 까지 걸리는 시간이다.

728x90