티스토리 뷰

정리용/DB

[DB 기초] 2. DB 확장 방법

hee-ya07 2025. 3. 11. 15:09

0. 종류

:: 대규모 데이터베이스 시스템에서 부하 분산 및 확장성을 위해 사용하는 3개의 전략

1. Partitioning (수직 파티셔닝)

2. Sharding (수평 파티셔닝)

3. Replication (복제)

 

1. Partitioning (Vertical Partitioning) 과 Sharding (Horizontal Partitioning)

출처 : https://www.digitalocean.com/community/tutorials/understanding-database-sharding

1.1 Partitioning (수직 파티셔닝, Vertical Partitioning)

항목 내용
특징 :: 데이터의 속성별로 테이블을 나누는 방식
:: 테이블의 열을 기준으로 분할
장점 - 자주 사용되는 열들만 분리하여 쿼리 성능을 개선
- 필요한 열만 읽기 때문에 입력/출력(I/O) 성능이 개선
단점 - 복잡한 쿼리에서 성능 저하가 있을 수 있음.
사용 특정 열만 자주 조회되는 경우 (예: 고객 기본 정보와 구매 이력 분리)

1.2 Sharding (수평 파티셔닝, Horizontal Partitioning)

항목 내용
특징 :: 테이블의 행을 기준으로 분할
:: 각 Shards는 데이터의 일부를 저장, 여러 샤드가 합쳐져 전체 DB를 구성
:: 데이터를 나누는 기준은 키 값을 기반 or 특정 범위
종류 1) Range-based Sharding :: 알파벳, 한글 순서 혹은 값의 순서로 차등 분리
2) Hash-based Sharding :: 해시 함수를 통해 균등 분리
3) Composite Sharding :: 위 두 방식 혼합 사용 (Range-based, Hash-based)
장점 - 수평적 확장에 유리
- 부하 분산을 통한 성능 향상
단점 - 복잡한 쿼리에서 성능 저하가 있을 수 있음.
- join 시 성능 저하 
사용 대규모 트래픽과 데이터를 다루는 서비스 (예: 소셜 네트워크, 온라인 쇼핑몰)

1.3 Replication (복제)

출처 : asac 수업 자료(좌) / https://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/modernization-data-persistence/cqrs-pattern.html (우)

CQRS (Command and Query Responsibility Segregation)

:: 데이터 저장소로부터의 읽기와 업데이트 작업을 분리하는 패턴

:: 어플리케이션의 퍼포먼스, 확장성, 보안성을 극대화할 수 있다

항목 내용
특징 :: 동일 데이터를 여러 서버(노드)에 복제
:: 쓰기 담당 / 읽기 담당을 나누어, 쓰기 발생 시 읽기 담당 노드 모두에 동기화 필요 
종류 1) 마스터-슬레이브(Master-Slave) :: 마스터 서버에 쓰기 작업, 슬레이브 서버에 읽기 작업을 분배
2) 마스터-마스터(Master-Master) :: 두 개 이상의 서버가 쓰기 작업을 처리
장점 - 고가용성과 부하 분산 지원
- 읽기 성능 향상 
단점 - 데이터의 일관성(동기화 지연)
- 쓰기 성능 제한 
사용 읽기 요청이 많은 서비스, 고가용성이 필요한 시스템 (예: 뉴스 웹사이트)

참고

ASAC 수업자료

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함