Sharding

less than 1 minute read

SHARDING

DB 트래픽을 분산 처리하기 위해서 동일한 스키마를 가진 데이터를 데이터베이스에 분산하여 저장하는 방법을 말한다.

DB에 데이터가 늘어나면 용량 이슈와 서비스 성능에 영향을 준다.

단점

프로그래밍, 운영 복잡도가 높아진다.

대안책

Scale-in

  • Hardware Spec이 더 좋은 컴퓨터를 사용한다.

Read 부하가 크다면?

Table의 일부 컬럼만 자주 사용한다면?

  • Vertically Partition도 하나의 방법이다.
  • Data를 Hot, Warm, Cold Data로 분리하는 것입니다. Link

파티셔닝

table을 작은 단위로 나누어서 관리하는 기법이다.

서비스가 커지고, DB에 저장되는 데이터의 규모가 커져서 발생하는 용량의 한계와 성능의 저하를 해결하기 위해 사용한다. 테이블 인덱스 크기가 물리적 메모리보다 크거나 주기적인 데이터 삭제가 필요할 때 사용한다.특정 column을 기준으로 나누는 수직 파티션과 row 단위로 자른 수평 파티션이 있다.

파티셔닝 VS 샤딩

  • 1 대 vs 여러대
  • 파티셔닝은 계속해서 성능이 좋아지지는 않지만, 샤드는 계속 쓰기 성능이 좋아진다. 샤드 별로 분산 저장 속도가 빨라진다.

Categories:

Updated: