반응형
📖반정규화 기법
테이블 반정규화
테이블 병합
- 1:1 관계 테이블 병합
- 1:M 관계 테이블 병합
- 슈퍼/서브 타입 테이블 병합
테이블 분할
- 수직 분할 : 칼럼 단위의 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능 향상(트랜잭션의 처리되는 유형을 파악이 선행되어야함.)
- 수평 분할 : 로우 단위로 집중 발생되는 트랜잭션을 분석하여 디스크 I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 로우 단위로 테이블을 쪼갬
테이블 추가
- 중복 테이블 추가 : 다른 업무이거나 서버가 다른 경우 동일한 테이블 구조를 중복하여 원격조인을 제거하여 성능을 향상
- 통계 테이블 추가 : SUM, AVG 등을 미리 수행하여 계산해 둠으로써 조회 시 성능을 향상
- 이력 테이블 추가 : 이력 테이블 중 마스터 테이블에 존재하는 레코드를 중복하여 이력 테이블에 존재하는 방법은 반정규화의 유형
- 부분 테이블 : 하나의 테이블에 전체 칼럼 중 자주 이용하는 집중화된 칼럼들이 있을 시 디스크 I/O를 줄이기 위해 해당 칼럼들을 모아놓은 별도 반정규화된 테이블 생성
칼럼 반정규화
- 중복칼럼 추가 : 조인에 의해 처리할 때 성능 저하를 예방하기 위해(조인 감소 위해) 중복된 칼럼을 위치시킴
- 파생칼럼 추가 : 트랜잭션이 처리되는 시점에 계산에 의해 발생되는 성능 저하를 예방하기 위해 미리 값을 계산하여 칼럼에 보관함.
- 이력 테이블 칼럼 추가 : 대량의 이력 데이터 처리 시 불특정 조회, 최근 값을 조회할 때 나타날 수 있는 성능 저하를 예방하기 위해 이력 테이블에 기능성 칼럼(최근값 여부, 시작과 종료일자 등)을 추가함.
- PK에 의한 칼럼 추가
- 응용 시스템 오작동을 위한 칼럼 추가
관계 반정규화
- 중복관계 추가 : 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적인 관계를 맺는 방법이 관계의 반정규화임.
반응형
'💻 my code archive > 📝Etc.' 카테고리의 다른 글
구글 애드센스 핀(PIN)번호 우편물 도착 & 등록 방법 (0) | 2022.05.30 |
---|---|
[SQLD / 자격증 공부] 요약 정리 6. 슈퍼타입, 서브타입 모델 (0) | 2022.05.08 |
[SQLD / 자격증 공부] 요약 정리 4. 성능 데이터 모델링, 정규화, 반정규화 (0) | 2022.05.07 |
[SQLD / 자격증 공부] 요약 정리 3. 관계(Relationship), 식별자(Identifiers) (0) | 2022.05.07 |
[SQLD / 자격증 공부] 요약 정리 2. 엔티티(Entity) (0) | 2022.05.07 |