[정의] 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법
[특징] 성능개선(큰 데이터를 압축, 개별 테이블은 각 샤드에서 더 빠른 작업을 지원),
신뢰성 개선(한 샤드가 실패하더라도 다른 샤드는 데이터 서비스를 제공), 위치 추상화
[개념도]
- 샤드 키로 설정된 칼럼의 기반으로 각각의 값에 맞는 Shard 에 저장
- 사용하는 Application 단에서는 MongoS 라는 라우팅 프로세스만 연결하므로
Shard 구조에 대해서 알 필요가 없음.
[분할방법]
1) Vertical Partitioning : 테이블 별로 서버를 분할하는 방식
2) Range based Partitioning : 하나의 feature 나 table 이 점점 거대해지는 경우 서버를 분리하는 방식.
3) Key or Hash Based Partitioning : 엔티티를 해쉬함수에 넣어서 나오는 값을 이용해서 서버를 정하는 방식.
4) Directory Based Partitioning : 파티셔닝 메커니즘을 제공하는 추상화된 서비스를 만듦.
[고려사항] 데이터 재분배, 조인불가, 파티션 등
'ITPE > DB' 카테고리의 다른 글
관계 데이터 언어(relational data language) (0) | 2021.03.09 |
---|---|
데이터 리팩토링 (0) | 2021.03.06 |
CRUD Matrix (0) | 2021.03.06 |
함수적 종속성 (0) | 2021.03.06 |
데이터 모델링 (0) | 2021.03.06 |