본문 바로가기
What is □?

20_샤딩(Sharding)이란 무엇인가?

by 전봇대파괴자 2021. 6. 10.

 

 

대량의 데이터를 처리하는 방법 중 하나로, 커다란 테이블을 관리하기 좋도록 쪼개는 것을 말한다. 관계형 데이터베이스(Relatonal Database Management System, RDBMS)에서 쓰인다.

 

 

다른 말로 데이터베이스 샤딩(Database Sharding), 수평 분할(Horizontal Partitioning)이라고도 하는데, 수평(가로) 분할이라는 이름처럼 테이블을 쪼갤 때 가로로 자른다. 이 과정에서 데이터가 한쪽으로 몰리는 일이 없도록 균등한 크기로 쪼개는 것이 중요하다. 이렇게 같은 크기로 데이터를 쪼개는 기준이 되는 column을 샤드 키(Shard Key)라고 한다. 예로 아래의 표에서 샤드 키는 'CustomerId'가 된다.

 

 

 

데이터의 갯수를 기준으로 쪼개기 때문에 자연히 관리할 데이터 크기가 작아져 성능이 향상된다.

하지만 쪼개진 테이블이 많아지는 만큼 서버와의 연결 과정이 잦아지고, 데이터를 찾는 과정이 기존보다 복잡해진다(여러 개의 테이블을 거쳐야 하니까). 그 때문에 데이터베이스를 운영하는 복잡도가 높아지는 단점이 있다.