1. 성능 데이터 모델링의 정의
데이터를 모델링 할 때 부터 (설계 단계 부터) 성능 향상을 목적으로 한다.
성능에 영향을 주는 것 들 : 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK
2. 성능 데이터 모델링 수행 시점
1) 성능 향상을 위한 비용은, 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 비용이 절감.
2) 분석 / 설계 단계에 가까운 시점에 하면 할 수록, 재 업무 (Rework) 비용을 최소화 할 수 있음.
3) 분석 / 설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 고려 해야함.
3. 성능 데이터 모델링 고려 사항
1) 데이터 모델링시, 정규화를 정확 하게 수행.
2) 데이터베이스 용량 산정을 수행.
(데이터베이스의 용량이 얼마나 될지)
3) 데이터베이스에 발생 되는 트랜잭션의 유형을 파악.
(데이터가 실시간으로 엄청 많이 들어오는 시스템 인지 ?)
(한번 대량의 데이터가 들어오면 조회를 많이 하는 시스템 인지 ?)
..
4) 용량 / 트랜잭션의 유형에 따라 반 정규화 수행.
(테이블을 너무 쪼개면 조인을 너무 많이 하게 되서, 성능이 저하 될 수 있음)
5) 이력 모델의 조정 / PK, FK 조정 / 슈퍼 타입, 서브 타입 조정 등을 수행.
6) 성능 관점에서 데이터 모델을 검증.
[ 정리 ]
1)
기본적으로, 데이터 모델링시, 정규화를 완벽 하게 수행 해야 한다.
정규화된 모델은 데이터를 주요 관심사별로 분산 시키는 효과가 있는데,
이는, 그 자체로 성능을 향상 시키는 효과를 가지게 된다.
2)
데이터 모델에 발생 되는 트랜잭션의 유형을 파악 해야 한다.
CRUD 를 보고 파악하는게 좋은 방법이 될 수 있다.
3)
파악한 용량과 트랜잭션의 유형 데이터를 근거로 해서,
정확 하게 테이블을 반 정규화 한다.
반 정규화는 테이블 / 속성 / 관계 에 대해 포괄적으로 방법을 적용 해야 한다.
4)
대량의 데이터가 처리 되는 모델에 대해서는 성능을 고려 해야 하고,
PK / FK 의 순서가 인덱스의 특성에 따라 성능에 큰 영향을 미치므로,
반드시 PK / FK를 성능이 우수한 순서 대로 칼럼의 순서를 조정 해야 한다.
'SQLD > 데이터 모델과 성능' 카테고리의 다른 글
분산 데이터베이스와 성능 (0) | 2023.11.13 |
---|---|
데이터베이스 구조와 성능 (1) | 2023.11.12 |
대량 데이터에 따른 성능 (1) | 2023.11.12 |
반정규화와 성능 (0) | 2023.11.10 |
정규화와 성능 (0) | 2023.11.10 |