Database

[ SQLD 이론 심화] Chapter 02. 데이터 모델과 성능

noahkim_ 2021. 7. 29. 10:50

1. 성능 데이터 모델링의 개요

데이터베이스의 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러가지 성능과 관련된 사항이 데이터모델링에 반영될 수 있도록 하는 것

 

  • 수행시점 
    사전에 할수록 비용이 들지 않음

  • 고려사항
    정규화 수행
    용량 산정
    트랜잭션의 유형을 파악하기
    해당 프로젝트에 적합한 반정규화 수행
    이력 모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정
    데이터모델 검증하기

2. 정규화와 성능

 

  • 성능 향상 전략
    정규화는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상현상을 제거하는 것
    중복을 최소화하므로 한 테이블의 데이터 용량이 최소화됨
    그렇지만 무조건 속도가 빠르다고는 할 수 없음

  • 효과 및 장점
    유연성이 극대화 됨
    재활용성에 좋음
    중복 최소화

  • 성능
    정규화를 수행하여 조인이 발생하게 되더라도 인덱스 사용을 통해 조인 연산 수행시 성능 상 단점은 거의 없음
    소량의 테이블을 먼저 읽어 조인 연산을 수행하면 되므로 성능 상 유리함
    정규화를 한다면 동이란 종류의 속성을 여러개 가지는 중복을 제거하므로 하나의 인덱스만 만들어도 됨

 

3. 반정규화와 성능

성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 기법
무결성이 깨질 수 있지만 데이터 조회시 디스크 I/O량을 줄일 수 있고 조인 시 경로가 너무 멀면 성능이 많이 저하됨
오로지 성능만을 위해 수행 

 

  • 절차
    컬럼의 반정규화 뿐만 아니라 테이블의 반정규화와 관계의 반정규화를 종합적으로 고려하여 적용
    다른 방법부터 찾아보고 반정규화를 적용해야 함

  • 기법
    - 테이블 반정규화
      테이블 병합, 테이블 분할, 테이블 추가

    - 칼럼의 반정규화
      중복 칼럼 추가, 파생 칼럼 추가, 이력 테이블 칼럼 추가, PK에 의한 칼럼 추가, 응용시스템의 오작동을 위한 칼럼 추가

    - 관계 반정규화
      중복 관계 추가

4. 대량 데이터에 따른 성능

칼럼이 많아지면 하나의 로우를 저장 시 물리적인 디스크에 여러 블록에 데이터가 저장될 가능성이 높아짐
즉, 하나의 행을 읽더라도 여러 개의 블록을 읽어야 함

 

  • 대용량 테이블에서 발생할 수 있는 현상
    - 로우 체이닝 : 로우가 너무 길어서 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태
    - 로우 마이그레이션 : 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간                                   을 찾아 저장하는 방식 

    데이터 조회시 절대적인 Block I/O의 횟수가 많아져 Disk I/O도 증가함

5. 데이터베이스 구조와 성능

 

  • 슈퍼 타입 / 서브 타입 모델
    공통의 부분을 슈퍼타입으로 모델링하고 슈퍼타입을 상속받아 서브 엔터티로 서브 타입 모델을 모델링함

    트랜잭션 처리 시 Union연산이 줄어듬

  • PK/FK 칼럼 순서와 성능
    (PK가 복합키일 경우)
    테이블에 발생되는 트랜잭션 조회 패턴에 따라 PK/FK 칼럼의 순서를 조정해야 함.
    인덱스 선두 칼럼에 대한 조건이 들어와야 인덱스 전체를 읽거나 테이블 전체를 읽는 경우를 피할 수 있음.

    Where 절에서 인덱스로 읽을 수 있도록 PK의 순서가 알맞게 되어야 함

6. 분산 데이터베이스와 성능

여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스

 

  • 투명성
    분할 투명성 : 하나의 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
    위치 투명성 : 위치정보가 System Catalog에 유지되어야 함
    지역 사상 투명성 : 지역 DBMS와 물리적 DB사이의 Mapping 보장
    중복 투명성
    장애 투명성
    병행 투명성

  • 장단점
    빠른 응답 속도와 통신비용 절감. 각 지역 사용자의 요구 수용 증대
    개발 비용 높음. 불규칙한 응답 속도