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

+ Recent posts