본문 바로가기
개발 공부/개발 지식

데이터베이스 샤딩이란?

by 코딩호야 2023. 4. 17.

샤딩 이란?

 

샤딩(Sharding) 이란 하나의 거대한 데이터베이스나 네트워크 시스템을

여러 개의 작은 조각으로 나누어 분산 저장하여 관리하는 것 을 말한다.

 

샤딩은 보통 전체 데이터베이스 하나의 테이블에 전부 들어가기 힘든 데이터가 등장하고 DBMS가 테이블을 관리하기 힘들어짐에 따라 적용하게 된다.

 

 

샤딩의 장단점

 

장점

  • Scale-Out이 가능
  • 스캔 범위를 줄여서 쿼리 반응 속도를 빠르게 함 ( 성능, 확장 향상 )
  • 장애가 샤드 단위로 발생함

단점

  • 프로그래밍 복잡도가 증가
  • 데이터가 한 쪽 샤드로 몰릴 경우(Hotspot), 샤딩이 무의미 해짐
  • 잘 못 사용할 경우 리스크가 큼
  • 한번 샤딩 사용시 샤딩 이전의 구조로 돌아가기 어려움
  • 다른 샤드끼리 join 할 수 없다