IT/DB

[DB] Sharding

어린이개발자 2025. 1. 15. 20:47

대용량 트래픽을 처리하는 개발자라면 고려해 볼 DB Sharding 에 대해 정리하고자 한다.

 

1. 개념

- 데이터를 논리적으로 나누는 작업으로, 각 분할된 데이터는 독립적으로 관리됨

 

2. 장점

- 성능 향상

  > 읽기 및 쓰기 작업이 여러 샤드로 분산되어 병렬 처리 가능

- 확장성

  > 필요에 따라 샤드와 서버를 추가하여 수평적 확장 가능

- 고가용성

  > 특정 샤드에 장애가 발생해도 나머지 샤드가 동작 유지 가능

 

3. 단점

- 운영 복잡성

- 쿼리 복잡성

  > 분산된 샤드에 걸친 데이터를 조회하기 위해 추가 로직(ex. 애플리케이션에서 집계 쿼리) 필요

- 데이터 재분배 비용

  > 샤드 키가 잘못 설계되었거나 데이터 불균형 시 샤드 간 데이터 재분배가 필요한데 이는 많은 자원과 시간 소모

 

4. 기타

- 적절한 키 선정 필요

  > 균등한 데이터 분배 보장할 수 있는 키

- 다양한 분배 전략 존재

'IT > DB' 카테고리의 다른 글

[MySQL] GROUP BY 사용법  (0) 2024.03.09
[MySQL] JSON_TABLE  (0) 2023.09.14
SQLD 내용 정리 4  (0) 2021.04.11
SQLD 내용 정리3  (0) 2021.04.04
SQLD 내용 정리2  (0) 2021.03.28