[ 목차 ]
1. 데이터베이스 파티셔닝
2. 제약사항
3, 데이터 파티셔닝의 이점
4. 파티셔닝 방법
5. MySQL 파티셔닝
6. 파티션 추가/삭제
7. 파티션 분할/병합
8. 데이터베이스 복제
9. 로그기반 복제
10. 데이터베이스 복제의 준비
1. 데이터베이스 파티셔닝
1) VLDB
1] 전체 DB가 하나의 DBMS시스템에 다 들어가기 힘들어지는 경우
2] 테이블들을 여러 개의 군으로 나눠 분산 저장
3] 하나의 테이블이 방대한 경우에는 사전 방식과 같이 나눠 저장
2) 파티셔닝 : DBMS 레벨 분할
3) 샤딩 : DBMS 외부에서 분할하는 것으로, 응용레벨에서 구별
2. 제약사항
1) 테이블단위 연산이 어려워짐으로 인해 비용문제 발생
1] 조인연산 어려움 -> 정규화문제
2] 역정규화 -> 중복허용으로 해결
2) 외래키의 효용문제
1] 레코드 추가시 참조무결성 조건 체크 -> 시스템 부담증가로 수동 전환
2] CRUD시 위치를 인식해야 함(파티셔닝/샤딩이 다름)
3. 데이터 파티셔닝의 이점
1) 데이터 전체 검색시 필요한 부분만 탐색해 성능 증가
2) 전체 데이터를 손실할 가능성 감소로인해 가용성 향상
3) 파티션별 백업/복구 기능 보유
4) 파티션 단위로 I/O 분산 가능하여 업데이트 성능 증가
4. 파티셔닝 방법
1) 범위 : 범위를 주어 나누는 방법으로, 각 범위별로 양이 다르게 저장될 수 있음
2) 해시 : 해시함수 파티션별로 크기를 비슷하게 나눔
3) 리스트 : 특정한 칼럼을 기준으로 나눔
4) 컴포지트 : 위 셋을 적절히 섞어 사용
5. MySQL 파티셔닝
1) 5.0 이상의 버전에서 지원
2) 최대 1024개
3) 모든 파티션을 동일한 스토리지 엔진 사용
4) 파티션은 외래키와 Full Text인덱스를 지원하지 않음
5) 파티션 값은 정수
6. 파티션 추가/삭제
alter table 테이블명 add partition (parition 파티션명 values less than 조건);
alter table 테이블명 drop partition 파티션명;
7. 파티션 분할/병합
alter table 테이블명 reorganize partition 파티션명
into (partition 분할파티션명1 values less than 조건),
partition 분할파티션명2 values less than 조건);
alter table 테이블명 reorganize partition 파티션명1, 파티션명2, into (partition 파티션명3 values less than 조건);
8. 데이터베이스 복제
1) DBMS의 내용을 복제해 동일할 DB내용을 유지
2) 두 개 이상의 DBMS 시스템을 마스터/슬레이브로 나눠 SQL쿼리 복제(SELECT문 제외)
3) 데이터 업데이트는(CUD)는 마스터, 읽기(R)는 슬레이브에서 진행
4) 읽기 성능이 향상되며 웹서버 시스템 성능확장에 적합
9. 로그기반 복제
1) Statement Based : SQL문장을 복제하는 것으로, SQL에 따라 결과가 달라지는 경우가 발생(시간, ID 등)
2) Row Based : SQL에 따라 변경된 라인만 기록하는 방식으로, 데이터가 많이 변경될 경우 데이터가 커짐
3) Mixed : 위 두 방식의 복합
10. 데이터베이스 복제의 준비
1) 두 개의 MySQL 서버가 필요
2) 물리적인 두 개의 서버를 사용하거나 가상화 시스템을 사용
3) 주로 리눅스 서버에 사용
'T아카데미 > 데이터베이스' 카테고리의 다른 글
19강. SQL Advanced 6 (0) | 2020.03.27 |
---|---|
18강. SQL Advanced 5 (0) | 2020.03.27 |
16강. SQL Advanced 3 (0) | 2020.03.25 |
88 (0) | 2020.03.25 |
15강. SQL Advanced 2 (0) | 2020.03.24 |