DevBlackCat
정보처리기사 : 물리속성 설계 완전정복!! 본문
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
'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글
정보처리기사 : 물리데이터모델 품질검토 완전정복!! (0) | 2024.12.07 |
---|---|
정보처리기사: 물리 데이터 베이스 모델링 (1) | 2024.12.06 |
정보처리기사 : 물리요소 조사 분석 완전정복!! (0) | 2024.12.05 |
정보처리기사 : 관계 데이터베이스 모델 완전정복!! (1) | 2024.12.05 |
정보처리기사 : 데이터베이스 모델 완전정복!! (0) | 2024.11.29 |