-
Distributed Relational Database이커머스 devops 2025. 11. 25. 09:00
Distributed Relational Database
- Relational Database : 관계형 데이터베이스
- Distributed Relational Database : 분산 관계형 데이터베이스

[ 서비스가 활성화되면서 단일 DB로 처리하기에 부담이 생긴 상황 ]
- 저장해야 할 데이터와 트래픽이 많아짐
- 가장 간단한 방법 : Scale-up, DB 장비 성능 업그레이드
- Scale-up의 한계 : Scale-out 고려, 장비를 여러 대 사용하여 수평 확장

[ 데이터베이스에 대한 하나의 분산 시스템 구성 ]
- 샤딩을 이용해 데이터를 여러 DB에 분산한다
- 샤딩 테이블 : 데이터를 여러 DB에 분산하여 저장하는 기술
- 샤드 : 샤딩된 각각의 데이터 단위
- 물리적 샤드 : 데이터를 물리적으로 분산한 실제 단위
- 대규모 데이터 분산 저장 및 성능 향상
- 논리적 샤드 : 데이터를 논리적으로 분산한 가상 단위
- 물리적 확장 시, Client 변경 없이 유연한 매핑
- 물리적 샤드 : 데이터를 물리적으로 분산한 실제 단위

[ 수직샤딩 ]
- 데이터를 수직으로 분할하는 방식 (컬럼 단위)
- 각 샤드가 적은 수의 컬럼을 저장하기 때문에 성능 및 공간 이점이 생긴다
- 데이터의 분리로 인해 조인 또는 트랜잭션 관리가 복잡해질 수 있다
- 수평적 확장에 제한이 있다

[ 수평샤딩 ]
- 데이터를 수평으로 분할하는 방식 (행 단위)
- 각 샤드에 데이터가 분산 저장되므로 성능 및 공간 이점이 생긴다
- 데이터의 분리로 인해 조인 또는 트랜잭션 관리가 복잡해질 수 있다
- 수평으로 분할되므로 수평적 확장에 용이하다

[ 범위 기반 샤딩 ]
- 데이터를 특정 값(shard key)의 특정 범위에 따라 분할
- 범위 데이터 조회 유리
- 데이터 쏠림 현상 발생 가능

[ 해시 기반 샤딩 ]
- 데이터를 특정 값(Shard Key)의 해시 함수에 따라 분할하는 법
- 균등한 분산을 위한 Shard Key와 해시 함수가 필요, 데이터 쏠림 현상 있을 수 있음
- 범위 데이터 조회에 불리할 수 있다

[ 디렉토리 기반 샤딩 ]
- 디렉토리를 이용하여 데이터가 저장된 샤드를 관리하는 기법 매핑 테이블을 이용하여 각 데이터가 저장된 샤드 관리
- 디렉토리 관리 비용 있으나 데이터 규모에 따라 유연한 관리 가능
728x90'이커머스 devops' 카테고리의 다른 글
스프링부트 게시판 (2) (0) 2025.11.27 스프링부트 게시판 (1) (1) 2025.11.25 OSIV와 성능 최적화 (0) 2025.11.21 컬렉션 조회 최적화 (0) 2025.11.21 지연 로딩과 조회 성능 최적화 (0) 2025.11.20