Sharding이란?

데이터를 키 기반으로 여러 물리 서버에 분산 저장해 단일 DB의 용량·처리 한계를 넘는 기법이다.

전략

  • Range — 키 범위별 분할 (예: user_id 1~1M은 shard1)
  • Hash — 키 해시값으로 균등 분산
  • Directory — 별도 매핑 테이블

단점

  • 크로스 샤드 조인·트랜잭션 복잡
  • 리샤딩(재분배) 비용 큼
  • 샤드 키 선택 실수가 장기적 악영향