[SQLD / 자격증 공부] 요약 정리 6. 슈퍼타입, 서브타입 모델
my code archive
반응형

슈퍼 타입/서브 타입 모델의 성능 고려 방법

  • 업무를 구성하는 데이터 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있음.
  • 슈퍼 타입 : 공통 부분을 슈퍼 타입으로 모델링
  • 서브 타입 : 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성만 모델링
  • 논리적 데이터 모델에서 주로 이용(=분석 단계에서 많이 쓰임)

슈퍼/서브 타입 데이터 베이스 성능 저하 원인 3가지

  • 트랜잭션은 항상 일괄 처리 & 테이블 개별 유지 => Union 연산에 의해 성능 저하
  • 트랜잭션은 항상 서브타입 개별 처리 & 테이블 하나로 통합 => 불필요하게 많은 양의 데이터가 집약되어 성능 저하
  • 트랜잭션은 항상 슈퍼+서브 타입 공통 처리 & 테이블 개별 유지 => 조인에 의해 성능 저하

슈퍼/서브 타입 변환 기준

  • 데이터량이 소량일 경우 : 성능에 영향을 미치지 않기 때문에 데이터 처리 유연성을 고려하여 가급적 1:1 관계를 유지하는 것이 바람직하다.
  • 데이터량이 많아지는 경우 : 트랜잭션이 해당 테이블에 어떻게 발생되는지에 따라 3가지 변환 방법을 상황에 맞게 처리 -> 전부 개별 테이블로 구성, 슈퍼+서브 타입 테이블로 구성, 하나의 테이블로 구성

인덱스 특성을 고려한 PK/FK 데이터베이스 성능 향상

일반적인 프로젝트에서 PK, FK 컬럼 순서의 중요성을 인지 못해서 데이터 모델링된 그 상태대로 DDL을 생성하여 성능이 저하되는 경우가 빈번함.

  • 인덱스 중요성 : 데이터 조작 시 가장 효과적으로 처리될 수 있는 접근 경로 오브젝트. 앞쪽에 위치한 속성값(컬럼)이 비교자로 있어야 인덱스가 좋은 효율을 냄.
  • PK, FK 설계 중요성 : 데이터 접근 시 접근 경로 제공, 설계 단계 마지막에 컬럼 순서를 조정
  • PK 순서 중요성 : 물리적 모델링 단계에서 스스로 생성된 PK 이외에 상속되는 PK 순서도 중요하다.
  • FK 순서 중요성 : 조인을 할 수 있는 수단이 된다.(=경로), 조회 조건 고려해서 반드시 인덱스 생성
인덱스 엑세스 범위 좁히는 가장 좋은 방법?
-PK가 여러 개일 때, WHERE 절에서 사용하는 조건용 컬럼들이 우선순위가 되어야함.
- '=' EQUAL 조건(동등 조건)에 있는 컬럼이 제일 앞으로
- BETWEEN, IN(범위 조건)에 있는 컬럼들이 그 다음 순위
- 나머지 PK는 그 뒤에 아무렇게나.
반응형
profile

my code archive

@얼레벌레 개발자👩‍💻

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

반응형