반정규화
- 정규화 된 데이터 모델에 대해 성능 향상을 위해 데이터를 중복, 통합, 분리 하는 기법
- 정규화 시 엔티티 개수 증가 -> 여러 조인 요구
반정규화의 특징
- 조회(SELECT) 속도 향상
- 데이터 모델의 유연성은 저하
- 입력, 수정, 삭제 성능 저하
반정규화를 하는 이유
- 정규화를 통해 엔티티와 관계 수가 많아져서 조회 시 ‘조인’으로 인한 성능 저하가
예상될 때
- 조인으로 인한 I/O 양이 너무 많아져서 처리 성능이 저하 될 때
- 중복성을 증가시켜 조회 성능을 향상시킴
테이블을 가지고 반정규화 하는 방법
- 테이블 병합
- 1:1 관계 테이블 병합
- 1:M 관계 테이블 병합
- 테이블 분할
- 테이블 수직 분할 (속성 분할)
- 트랜잭션 처리 유형 파악이 필요
- 반정규화에서 테이블 수직 분할 할 때 필요
- 테이블 속성 개수 많을 떄, 조회 성능 향상을 위해
- 테이블 수평 분할 (파티션)
- 테이블 추가
- 중복 테이블 추가
- 통계 테이블 추가
- 이력 테이블 추가
- 부분 테이블 추가