본문 바로가기

Data Science/SQLD

[SQLD] 데이터 모델과 성능 1-1. 성능 데이터 모델링의 개요

반응형

1. 성능 데이터 모델링의 정의

 

성능이 저하되는 데이터 모델의 경우

(1) 데이터 모델 구조

(2) 데이터가 대용량

(3) 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성

 

일반적인 성능이 가리키는것, 데이터 조회의 성능을 의미

-> 일반적인 트랜잭션의 성격이 조회의 패턴을 가지고 있으며, 업무에 따라서 입력/수정/삭제인 경우도 있다.

 

작업 유형 -> 목표 설정 -> 정확한 성능향상 모델링

 

성능 데이터 모델링 : 데이터베이스 성능향상을 목적으로, 설계 단계의 데이터 모델링 부터

-> 정규화, 반정규화, 테이블통합 및 분할, 조인구조, PK, FK 등을 반영

 

성능 데이터 모델링

(1) 반정규화

(2) 정규화

(3) 인덱스의 특징을 고려한 칼럼 순서 변형

(4) 대량의 데이터 특성의 경우 테이블을 수직 또는 수평 분할

(5) 논리적인 테이블을 물리적인 테이블로 전환시 데이터 처리의 성격에 따라 변환

 


2. 성능 데이터 모델링 수행시점

분석/설계 단계에서 성능 데이터 모델링을 수행하는 경우 -> 재업무 비용 최소화 가능

-> 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가


3. 성능 데이터 모델링 고려사항

(1) 데이터 모델링시 정규화를 정확하게 수행

(2) DB 용량산정 수행

: 정규화 완료시 -> 해당 데이터 모델의 각각의 엔터티에 어느정도의 트랜잭션이 들어오는지 확인

=> 엔터티에 대한 용량산정

 

(3) DB에 발생되는 트랜잭션 유형 파악

: CRUD 매트릭스를 보고 파악, 시퀀스 다이어그램을 보고 파악,

화면에서 처리된 데이터의 종류에 대한 이벤트에 따라 파악

-> 데이터조회의 칼럼들을 파악해 그에 따른 성능을 고려한 데이터 모델 설계

 

(4) 용량과 트랜잭션 유형에 따른 반정규화 수행

-> 테이블, 속성, 관계에 대해 포괄적인 반정규화 방법 적용

 

(5) 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정

-> 대량 데이터가 처리되는 이력모델에 대해 성능고려

-> PK/FK를 성능이 우수한 순서대로 칼럼의 순서를 조정

 

(6) 성능관점에서의 데이터 모델 검증

-> 데이터 모델 검토를 위한 체크리스트를 통해 확인

반응형