MySQL

파티셔닝,데이터베이스복제(Replication)

yougeun 2022. 12. 5. 17:44
728x90

파티셔닝

(1)VLDB(Very Large DBMS)

전체 DB가 하나의 DBMS시스템에 들어가기 힘들어지는 경우

- 테이블들을 여러개의 군으로 나눠 분산 저장

- 하나의 테이블에 방대한 경우는 사전방식(a-m,n-r,s-z)와 같이 나눠서 저장

(2)제약사항(Constraints)

테이블 단위 연산이 힘들어진다.

- 조인 연산 어려움->정규화 문제가 생김

- 역정규화 -> 중복혀용으로 해결

 

외래키의 호용문제

- 레코드 추가 시 참조무결성 조건 체크 ->시스템 부담증가로 수동전환

- CRUD시 위치를 인식해야함

(3)이점(Benefits)

데이터 전체 검색 시 필요한 부분만 탐색해 성능 증가

전체 데이터를 손실할 가능성이 줄어듦->가용성 증가

파티션별 백업/복구 가능

파티션단위로 I/O 분산가능->업데이트 성능이 증가

(4)파티셔닝 방식

범위(range) : a-m / n-r / s-z (사전방식)

해시(hash) :해시함수 파티션별로 크기를 비슷하게 나눔(5부제,10부제)

리스트(list):특정한 컬럼을 기준 (년도)

컴포지트(composite): range-hash / range-list

 

데이터베이스 복제(Replication)

DBMS의 내용을 복제해 동일한 DB내용을 유지

두 개 이상의 DBMS 시스템을 마스터/슬레이브로 나눔

- 데이터 업데이트는 마스터

- 읽기는 슬레이브

읽기 성능 향상

웹서버 시스템 성능확장에 적합

(1)로그 기반복제(Binary Log)

1.Statement Based

SQL문장을 복제하는 방식이다.

SQL에 따라 결과가 달라지는 경우(시간,UUID 등)에는 사용하지 못한다.

 

2.Row Based

SQL에 따라 변경된 라인만 기록하는 방식이다.

데이터가 많이 변경된 경우 데이터가 커진다.

 

3.Mixed

Statement Based와 Row Based를 복합하는 방식이다.

 

728x90