티스토리 뷰
1. 성능 데이터 모델링의 정의
데이터의 용량의 커지고 기업의 의사결정의 속도가 빨라질수록 데이터를 처리하는 속도는 빠르게 처리되어야 할 필요성을 반증해 준다.
성능이 저하되는 데이터 모델의 경우 크게 세 가지 경우를 고려하여 그 성능을 향상시킬 수 있다.
- 데이터 모델 구조에 의해 성능 저하
- 데이터가 대용량이 됨으로 인해 불가피하게 성능 저하
- 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성함으로 인해 성능 저하
성능 데이터 모델링이 단순히 반정규화만을 의미하지 않음을 주목해야 한다.
성능데이터 모델링은 정규화를 통해서도 수행할 수 있고 인덱스의 특징을 고려해서 칼럼의 순서도 변형할 수 있다.
또한 대량의 데이터특성에 따라 비록 정규화된 모델이라도 테이블을 수직 또는 수평 분할하여 적용하는 방법도 있고 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환하는 방법도 성능 데이터 모델링의 범주에 포함될 수 있다.
2. 성능 데이터 모델링 수행시점
성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않는다.
특히 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능저하에 따른 재업무(Rework) 비용을 최소화 할 수 있는 기회를 가지게 된다.
분석/설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다.
3. 성능 데이터 모델링 고려사항
일반적으로 성능 데이터 모델은 다음과 같은 프로세스로 진행하는 것이 데이터 모델링 단계에서 성능을 충분히 고려할 수 있는 방안이 된다.
- 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
- 데이터베이스 용량산정을 수행한다.
- 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
- 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
- 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.
- 성능관점에서 데이터 모델을 검증한다.
[출처] http://www.bysql.net
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스 Level 2
- Asynchronous
- blocking
- 프로그래머스 Level 3
- 핸들러 인터셉터
- Filter
- Handler Interceptor
- 프로그래머스
- 논블로킹
- non-blocking
- 스택/큐
- 필터
- 블로킹
- Synchronous
- 비동기
- 인터셉터
- http://www.nextree.co.kr/p6960/
- 동기
- 해시
- 코딩테스트 고득점 Kit
- 프로그래머스 Level 1
- a
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함