본문 바로가기
데이터 분석

[SQLD] 개념정리 - 데이터 모델과 성능(2): 테이블 분할, 슈퍼/서브 타입, 분산 데이터베이스

by pm-ing 2023. 9. 5.

대량 데이터 발생에 따른 테이블 분할

: 대량 데이터가 존재하는 테이블에 많은 트랜잭션이 발생 -> 성능 저하 -> 테이블 구조에 대해 수평/수직 분할 설계하여 성능 저하를 예방할 수 있음

테이블의 데이터는 Block 단위로 디스크에 저장됨.

칼럼이 많아지면 하나의 로우를 저장 시 물리적인 디스크의 여러 블록에 데이터가 저장될 가능성이 높아짐.

즉, 하나의 행을 읽더라도 여러 개의 블록을 읽어야 함 -> 해당 SQL문의 Block I/O가 많아짐.

 

<대용량 테이블에서 발생할 수 있는 현상>

1) 로우 체이닝(Row Chaining): 로우 길이가 길어서 데이터 block 하나에 데이터가 모두 저장되지 않고, 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태

2) 로우 마이그레이션(Row Migration): 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 block의 빈 공간을 찾아 저장하는 방식

->로우체이닝, 로우 마이그레이션 발생하여 많은 블록에 데이터가 저장되면 데이터 조회 시 Block I/O의 횟수가 많아짐.

Block I/O의 횟수가 많아지면 Disk I/O를 할 가능성도 높아짐 -> Disk I/O를 하게 되는 경우 성능이 급격히 저하됨

 

✅수평분할의 종류

- RANGE PARTITION

- LIST PARTITION

- HASH PARTITION

 


< 데이터베이스 구조와 성능 >

✅슈퍼타입/서브타입 모델

슈퍼/서브타입 데이터 모델 변환의 중요성

1) 업무를 구성하는 데이터의 특징을 분석하여 공통점/차이점을 고려하여 효과적으로 표현 가능

2) 공통의 부분을 슈퍼타입 엔터티로 모델링, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브 타입 엔터티로 구분

 

✅분산 데이터베이스 개요

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

: 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임.

1) 장점 - 신뢰성, 가용성, 효용성, 융통성, 빠른 응답 속도

2) 단점 - 개발 비용, 오류의 잠재성 증대, 처리 비용의 증대, 설계 및 관리의 복잡성, 불규칙한 응답 속도, 통제 어려움, 데이터 무겨럿ㅇ에 대한 위협

 

✅분산 데이터베이스 적용 기법

- 테이블 위치 분산: 설계된 테이블의 위치를 각각 다르게 위치

- 테이블 분할 분산: 수평분할(특정 칼럼의 값을 기준으로 로우를 분리), 수직분할(칼럼을 기준으로 칼럼을 분리))

- 테이블 복제 분산: 부분복제, 광역복제

- 테이블 요약 분산: 분석요약, 통합요약

반응형