1. 대량 데이터발생에 따른 테이블 분할 개요
성능저하의 요인
한 테이블에 데이터가 대량으로 집중
테이블의 여러 개의 칼럼이 존재
많은 인덱스 생성으로 인한 CUD 성능 저하, 로우체이닝과, 로우마이그레이션 발생
2. 한 테이블에 많은 수의 컬럼을 가지고 있는 경우
집중적으로 트랜잭션이 발생하는 컬럼을 분석하여 쪼개주면 IO 성능이 향상되어 성능이 개선 됨
3. 대량 데이터 저장 및 처리로 인한 성능
물리적으로 여러개 테이블 스페이스에 쪼개어 저장될 수 있다.
Range Partitioning 적용
테이블의 내부적으로 Range를 지정하여 파티셔닝한다 ( 개발자가 물리적으로 수행하지 않는다.)
숫자나 날짜별로 분리가 가능한 경우 적용한다
데이터 보관 주기에 다른 테이블 관리가 용이하다List Partition 적용
PK값들의 조합으로 이루어진 대량 데이터의 경우 특정 PK 컬럼을 기준하여 파티셔닝을 적용이 가능하다, 하지만 데이터 보관주기에 따른 관리는 불가능 함Hash Partitioning 적용
해싱 알고리즘이 적용되어 테이블 분리
데이터 보관주기에 따라 쉽게 삭제하는 기능은 제공하지 않음
4. 테이블에 대한 수평분할/ 수직분할 절차
원칙
데이터 모델링 완성
데이터 베이스 용량 산정
대량 데이터 처리 테이블에 대해 트랜잭션 처리 패턴 분석
수평/수직 분할 중 적절한 분리 선택
'자격증 > SQLD' 카테고리의 다른 글
분산 데이터베이스와 성능 (0) | 2016.09.09 |
---|---|
데이터베이스 구조와 성능 (0) | 2016.09.09 |
반정규화와 성능 (0) | 2016.09.09 |
성능 데이터 모델링의 개요 (0) | 2016.09.02 |
식별자 (0) | 2016.09.02 |