본문 바로가기

자격증/SQLD

대량 데이터에 따른 성능

1. 대량 데이터발생에 따른 테이블 분할 개요


성능저하의 요인

  • 한 테이블에 데이터가 대량으로 집중

  • 테이블의 여러 개의 칼럼이 존재

    많은 인덱스 생성으로 인한 CUD 성능 저하, 로우체이닝과, 로우마이그레이션 발생


2. 한 테이블에 많은 수의 컬럼을 가지고 있는 경우


집중적으로 트랜잭션이 발생하는 컬럼을 분석하여 쪼개주면 IO 성능이 향상되어 성능이 개선 됨


3. 대량 데이터 저장 및 처리로 인한 성능


물리적으로 여러개 테이블 스페이스에 쪼개어 저장될 수 있다.

  • Range Partitioning 적용
    테이블의 내부적으로 Range를 지정하여 파티셔닝한다 ( 개발자가 물리적으로 수행하지 않는다.)
    숫자나 날짜별로 분리가 가능한 경우 적용한다
    데이터 보관 주기에 다른 테이블 관리가 용이하다

  • List Partition 적용
    PK값들의 조합으로 이루어진 대량 데이터의 경우 특정 PK 컬럼을 기준하여 파티셔닝을 적용이 가능하다, 하지만 데이터 보관주기에 따른 관리는 불가능 함

  • Hash Partitioning 적용
    해싱 알고리즘이 적용되어 테이블 분리
    데이터 보관주기에 따라 쉽게 삭제하는 기능은 제공하지 않음


4. 테이블에 대한 수평분할/ 수직분할 절차

원칙

  1. 데이터 모델링 완성

  2. 데이터 베이스 용량 산정

  3. 대량 데이터 처리 테이블에 대해 트랜잭션 처리 패턴 분석

  4. 수평/수직 분할 중 적절한 분리 선택



'자격증 > SQLD' 카테고리의 다른 글

분산 데이터베이스와 성능  (0) 2016.09.09
데이터베이스 구조와 성능  (0) 2016.09.09
반정규화와 성능  (0) 2016.09.09
성능 데이터 모델링의 개요  (0) 2016.09.02
식별자  (0) 2016.09.02