제4절 대량 데이터에 따른 성능
1. 대량 데이터발생에 따른 테이블 분할 개요
대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/수직 분할 설계를 통해 성능저하를 예방할 수 있다.
- 로우체이닝 : 로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태
- 로우마이그레이션 : 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
2. 한 테이블에 많은 수의 칼럼을 가지고 있는 경우
트랜잭션을 분석하여 적절하게 1:1관계로 분리하여 성능향상을 기대하도록 해야한다.
3. 대량 데이터 저장 및 처리로 인한 성능
파티셔닝 기법을 이용하여 성능 향상을 기대한다.
(1) RANGE PARTITION 적용 : 숫자나 날짜 등의 범위를 지정하여 분리 저장 / 데이터 보관주기에 따라 쉽게 삭제 가능
(2) LIST PARTITION 적용 : 특정 값에 따라 분리 저장
(3) HASG PARTITION 적용 : 해시 알고리즘에 따라 적용되어 테이블 분리
4. 테이블에 대한 수평분할/수직분할의 절차
(1) 데이터 모델링을 완성한다.
(2) 데이터베이스 용량을 산정한다.
(3) 대량 데이터가 처리되는 테이블에 대해서 트랜잭션 처리 패턴을 분석한다.
(4) 컬럼 단위 or 로우 단위로 집중화된 처리가 발생되는지 분석하여 집중화된 단위로 테이블을 분리하는 것을 검토한다.
'자격증 > SQLD' 카테고리의 다른 글
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제6절 분산 데이터베이스와 성능 (0) | 2021.05.22 |
---|---|
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제5절 데이터베이스 구조와 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제3절 반정규화와 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제2절 정규화와 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제1절 성능 데이터 모델링의 개요 (0) | 2021.05.22 |