✅대량 데이터 발생에 따른 테이블 분할
: 대량 데이터가 존재하는 테이블에 많은 트랜잭션이 발생 -> 성능 저하 -> 테이블 구조에 대해 수평/수직 분할 설계하여 성능 저하를 예방할 수 있음
테이블의 데이터는 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) 단점 - 개발 비용, 오류의 잠재성 증대, 처리 비용의 증대, 설계 및 관리의 복잡성, 불규칙한 응답 속도, 통제 어려움, 데이터 무겨럿ㅇ에 대한 위협
✅분산 데이터베이스 적용 기법
- 테이블 위치 분산: 설계된 테이블의 위치를 각각 다르게 위치
- 테이블 분할 분산: 수평분할(특정 칼럼의 값을 기준으로 로우를 분리), 수직분할(칼럼을 기준으로 칼럼을 분리))
- 테이블 복제 분산: 부분복제, 광역복제
- 테이블 요약 분산: 분석요약, 통합요약
'데이터 분석' 카테고리의 다른 글
[SQLD] 개념정리 - SQL 기본(2): WHERE, FUNCTION, GROUP BY, HAVING, JOIN (0) | 2023.09.08 |
---|---|
[SQLD] 개념정리 - SQL 기본(1): DML, DDL, DCL, TCL, 트랜잭션 (1) | 2023.09.07 |
[SQLD] 개념정리 - 데이터 모델과 성능(1): 성능 데이터 모델링, 정규화, 반정규화 (0) | 2023.09.03 |
[SQLD] 개념정리 - 데이터 모델링의 이해(3): 관계, 식별자, 식별자관계 (2) | 2023.09.02 |
[SQLD] 개념정리 - 데이터 모델링의 이해(2): 엔터티, 인스턴스, 속성 (0) | 2023.08.18 |