- 데이터의 조회 성능을 향상시키기 위해 데이터의 중복을 허용하거나 데이터를 그룹핑
- 조회성능은 향상될 수 있으나 입력, 수정, 삭제 성능은 저하될 수 있음
- 데이터 정합성이슈가 발생할 수 있음
- 테이블 병합
- 업무 프로세스상 JOIN이 필요한 경우가 많아 테이블을 통합하는 것이 성능 측면에서 유리할 경우
- 1:1 , 1:M 가능
- 1:M관계 테이블 병합의 경우 1쪽에 해당하는 엔터티의 속성 개수가 많으면 병합했을 때 중복 데이터가 많아지기 때문에 적절하지 않음
- 테이블 분할
- 테이블 수직 분할
- 엔터티의 일부 속성을 별도의 엔터티로 분할(1:1 관계 성립)
- 자주 사용하는 속성이 아니거나 대부분의 인스턴스 속성값이 NULL일 때 고려
- 테이블 수평 분할
- 엔터티의 인스턴스를 특정 기준으로 별도의 엔터티로 분할
- 테이블 수직 분할
- 테이블 추가
- 중복 테이블 추가
- 데이터의 중복을 감안하더라도 성능상 반드시 필요할 경우 별도의 엔터티 추가
- 통계 테이블 추가
- 자주 사용할 통계치를 미리 계산하여 저장
- 이력 테이블 추가
- 과거의 데이터를 관리
- 부분 테이블 추가
- 필요한 속성만 부분 테이블로 작성하여 사용
- 중복 테이블 추가
- 중복 컬럼 추가
- 업무 프로세스상 JOIN이 필요한 경우가 많아 컬럼을 추가하는 것이 유리할 때 고려
- 파생 컬럼 추가
- 프로세스 수행 시 부하가 염려되는 계산값을 미리 컬럼으로 추가하여 보관
- 이력 테이블 컬럼추가
- 대량의 이력 테이블을 조회할 때 속도가 느려질 것을 대비하여 조회 기준이 될 것으로 판단되는 컬럼을 미리 추가
- 업무 프로세스상 JOIN이 필요한 경우가 많아 중복 관계를 추가하는 것이 유리할 때 고려