1절. 성능 데이터 모델링
1절 성능 데이터 모델링
1. 성능 데이터 모델링
일반적으로 성능이라고 하면 데이터조회의 성능을 의미하곤 한다. 그 이유는 일시적인 경우며 단건 처리가 많은 데이터 입력/수정/삭제에 비해 데이터 조회는 반복적이고 빈번하며 여러 건을 처리하는 경우가 많기 때문이다.
성능 데이터 모델링이란 db 성능 향상을 목적으로 설계단계의 db모델링 때부터 정규화, 반정규화, 테이블통합, 테이블 분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다.
성능 데이터 모델링은 단순히 반정규화만을 의미하지 않는다. 정규화, 칼럼순서변경, 테이블 수직분할, 수평분할, 분산DB운영 등을 통해서도 삽가넝하다.
2. 성능 데이터 모델링 수행시점
- 사전에 할수록 비용이 적게 든다. 분석/설계 단계에서 데이터 모델에 성능을 고려한 모델링을 수행할 경우 성능저하에 따른 재업무 비용을 최소화 할 수 있다.
- 분석/설계단계에서 DB은 대충하고 성능이 저하되는 SQL 문장을 중심으로 튜닝하고, 부족한 하드웨어 등을 증설하는 작업은 추가적인 비용을 소진하는 원인이 된다.
- 데이터의 증가가 빠를수록 성능저하에 따른 성능개선비용은 기하급수적으로 증가하게 된다.
- 프로젝트 초기에 운영환경에 대비한 테스트 환경을 구현하고 그곳에 트랜잭션을 발생시켜 실제 성능을 테스트해봐야 한다. 이 때 데이터 구조도 변경하면서 어떠한 구조가 해당 사이트에 성능상 가장 적절한 구조인지 검토하여 성능이 좋은 모습으로 디자인하는 전략 필요
3. 성능 데이터 모델링 고려사항 정 용 트 반 조 검
① 모델링을 할 때 정규화를 정확하게 수행한다.
② DB 용량산정을 수행한다.
③ DB에 발생되는 트랜잭션의 유형파악
④ 용량과 트랜잭션의 유형에 따라 반정규화를 수행하낟.
⑤ 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.
⑥ 성능관점에서 데이터 모델을 검증한다.