Computer Science

[CS / DataBase] 파티셔닝(Partitioning)과 샤딩(Sharding)

마볼링 2022. 6. 26. 17:40

파티셔닝이란?

  • 테이블(table)을 '파티션(partition)'이라는 작은 단위로 나누어 관리하는 기법
  • 데이터베이스를 분산 처리하여 성능이 저하되는 것을 방지하고 관리를 보다 수월하게 함
  • 장점
    • 가용성(Availability) : 물리적인 노드 분리에 따라 전체 DB 내의 데이터 손상 가능성이 줄어들고, 데이터 가용성이 향상됨
    • 관리 용이성(Manageability) : 큰 테이블을 제거하여 관리를 쉽게할 수 있다
    • 성능(Perfomance) : 특정 DML과 Query 성능을 향상시키며 대용량 데이터 write 환경에서 효율적이다.
  • 단점
    • 테이블 간 join 비용 증가
    • 파티션 제약 : 테이블과 인덱스를 별도로 파티션 할 수 없다.

 

수직 파티셔닝(Vertical Partitioning)

  • 컬럼을 나눠 새로운 테이블로 만들어서 나눠갖는 것
  • 하나의 엔티티를 2개 이상으로 분리하는 작업

 

수평 파티셔닝(Horizontal Partitioning) = 샤딩(Sharding)

  • 하나의 테이블의 각 행을 다른 테이블에 분산시키는 것
  • 샤딩과 동일한 개념
  • 스키마(schema)가 같은 데이터를 두 개 이상의 테이블에 나누어 저장하는 것

 

*스키마 : 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것

               (개체+속성+관계+제약조건)

 

 

 

 

 

 


참고

 

[DB] DB 파티셔닝(Partitioning)이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

 

[DB] 분산 DB, 파티셔닝 ( partitioning ), 샤딩 (sharding)

파티셔닝(단편화) 란? 저장해야 하는 정보가 많은 대규모 시스템의 경우 하나의 DB에 모든 정보를 저장해서는 제대로 된 응답성을 기대할 수 없다. read가 많이 발생하든, write가 많이 발생하든 DB

umbum.dev