IT/SQL
MySQL[16] - 파티셔닝/샤딩, 데이터베이스 복제
올빼밋.
2022. 6. 6. 19:53
728x90
목차
1. 파티셔닝/샤딩
2. 데이터베이스 복제
1. 파티셔닝/샤딩
데이터베이스 파티셔닝(Partitioning)
- VLDB(Very Large DBMS)
- 파티셔닝(Partitioning)
- 샤딩(Sharding)
—> 파티셔닝 : DB시스템 안에서 나눔 / 샤딩 : 시스템 단위로 나눔
- 제약사항(Constraints)
- 이점(Benefits)
- 파티셔닝 방식
- MySQL 파티셔닝
CREATE TABLE BusinessCard(ID INT NOT NULL, Name varchar(255), Address varchar(255), Telephone VARCHAR(255), CreationTime DATE)
PARTITION BY RANGE (YEAR(CreationTime)) (
PARTITION p0 VALUES LESS THAN (2013),
PARTITION p1 VALUES LESS THAN (2014),
PARTITION p2 VALUES LESS THAN (2015),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
- 파티션 추가/삭제
ALTER TABLE BusinessCard ADD PARTITION (
PARTITION p4 VALUES LESS THAN (2005));
ALTER TABLE BusinessCard DROP PARTITION p4;
- 파티션 분할/병합
ALTER TABLE BusinessCard
REORGANIZE PARTITION p3 INTO (
PARTITION p3 VALUES LESS THAN (2015),
PARTITION p4 VALUES LESS THAN MAXVALUE);
ALTER TABLE BusinessCard
REORGANIZE PARTITION p2, p3 INTO (
PARTITION p23 VALUES LESS THAN (2014));
2. 데이터베이스 복제
데이터베이스 복제(Replication)
- DBMS의 내용을 복제해 동일한 DB내용을 유지
- 두 개 이상의 DBMS 시스템을 마스터/슬레이브로 나눠 마스터 DBMS -> 슬레이브 DBMS로 SQL쿼리 복제(SELECT 제외)
- 읽기 성능 향상
- 웹서버 시스템 성능 확장에 적합
- 로그기반 복제(Binary Log)
SQL 문장 복제, SQL에 따라 결과가 달라지는 경우 (시간, UUID, …)
SQL에 따라 변경된 라인만 기록하는 방식
데이터가 많이 변경된 경우 데이터 커짐
두 방식 복합
- 두 개의 MySQl 서버 필요
- 물리적으로 두 개의 서버 vs. 가상화 시스템
- 주로 리눅스 서버에 사용
728x90