샤딩(sharding)과 파티셔닝(partitioning)의 차이

파티셔닝이란 퍼포먼스(performance), 가용성(availability) 또는 정비용이성(maintainability)를 목적으로 논리적인 데이터 엘리먼트들을 다수의 table로 쪼개는 행위를 뜻하는 일반적인 용어입니다.

샤딩은 수평 파티셔닝(horizontal partitioning)과 동일합니다. 데이터베이스를 샤딩하게 되면 기존에 하나로 구성될 스키마를 다수의 복제본으로 구성하고 각각의 샤드에 어떤 데이터가 저장될 지를 샤드 키를 기준으로 분리합니다. 

수평 파티셔닝 (horizontal partitioning) = 샤딩


위 예시를 보면 1 ~ 5 번 고객의 정보는 하나의 샤드에 저장하고 6 ~ 10 번 고객의 정보는 다른 샤드에 저장하기로 한 예시 입니다. DBA는 데이터 엑세스 패턴과 저장 공간 이슈(로드의 적절한 분산 , 데이터의 균등한 저장)를 고려하여 적절한 샤드 키를 결정하게 됩니다.

수직 파티셔닝 (vertical partitioning)


수직 파티셔닝(vertical partitioning)은 하나의 테이블에 저장된 데이터들을 공간이나 퍼포먼스의 이유로 다수의 테이블로 분리하는것을 말합니다. 이러한 작업을 하는 이유는 DB의 3정규화(Normalization)로 접근하면 편합니다.

'DB' 카테고리의 다른 글

샤딩(sharding), 파티셔닝(partitioning)  (0) 2018.12.23
[DB] ETL이란  (0) 2018.12.22
[DB] CDC란  (0) 2018.12.22
[DB]Connection Pool  (0) 2017.02.11
[SQL] WHERE절에서 IF문처럼 AND 사용  (0) 2017.02.02
[DB] 클러스터  (0) 2016.11.18

+ Random Posts