-
[DB] 샤딩 (Sharding)DB 2023. 10. 15. 15:11728x90
DB의 데이터의 볼륨이 커지면 DB의 읽기, 쓰기 성능이 저하될 수 있는데 이러한 문제점을 분산 처리 기법으로 방지할 수 있습니다.
샤딩은 분산 처리 기법 중의 하나로 테이블의 row들을 여러 대의 DB 서버들에 물리적으로 나누어 분산 저장하는 기법입니다. 샤딩은 수평 파티셔닝과 유사하지만 파티셔닝은 동일한 서버에 저장하지만 샤딩은 데이터를 물리적으로 서로 다른 서버에 분산하여 저장한다는 차이점이 있습니다.
장점
- 여러 서버에 분산되어 저장이 되어 쿼리 스캔 범위가 줄어 처리 속도가 향상됩니다.
- 서버의 replica를 진행하여 이중화 구성이 용이합니다.
단점
- 어플리케이션(코드)의 복잡도가 증가합니다.
- 핫스팟이라고 불리는 데이터가 특정 샤드에 몰리는 케이스의 경우 샤딩이 무의미해집니다.
샤딩 방식
모듈러 샤딩 (Modular sharding)
모듈러 샤딩은 PK값을 모듈러 연산 결과를 통해 샤드를 결정하는 방식입니다.
DB가 스케일 아웃이 된다면 데이터의 재 정렬이 필요하다는 단점이 있습니다.
레인지 샤딩 (Range Sharding)
레인지 샤딩은 PK값의 범위에 따라서 샤드를 지정하는 방식입니다. 모듈러 샤딩에 비해 DB의 스케일 아웃시에도 큰 리소스가 필요하지 않습니다.
레인지 샤딩은 특정한 데이터베이스에만 트래픽이 몰리는 핫스팟 문제가 발생할 수 있습니다.
728x90'DB' 카테고리의 다른 글
[DB] 클러스터링(Clustering) (0) 2024.01.21 [DB] 트랜잭션 격리 수준 (Transaction isolation level) (0) 2023.10.07 [DB] 인덱스(Index) (0) 2023.09.16 [DB] 데이터 시각화(Data Visualization)란? (0) 2020.08.30 [DB] 파티션 (Partition) (0) 2020.07.19