JuBin's personal study blog

[DataBase] 파티셔닝과 샤딩 본문

DataBase

[DataBase] 파티셔닝과 샤딩

JuBin 2023. 5. 21. 22:09
반응형

데이터베이스 파티셔닝과 샤딩은 모두 대용량 데이터를 효과적으로 관리하고 검색하기 위한 데이터베이스 아키텍처 전략입니다. 이 두 기법은 비슷해 보일 수 있지만, 개념적으로 약간 다른 점이 있습니다.

 

 

데이터베이스 파티셔닝

데이터베이스 파티셔닝은 단일 데이터베이스 내에서 데이터를 여러 파티션으로 분할하는 프로세스입니다. 이 파티션은 각기 다른 테이블, 인덱스, 혹은 같은 테이블 내의 서로 다른 부분이 될 수 있습니다. 파티션의 주요 목적은 성능 향상, 관리 용이성 및 데이터의 가용성을 높이는 것입니다.

파티셔닝은 주로 큰 테이블을 관리 가능한 부분으로 나누는 데 사용되며, 파티션은 일반적으로 데이터의 특정 키값(예: 날짜, 지역 등)에 따라 생성됩니다. 예를 들어, 매일 생성되는 대량의 로그 데이터가 있는 경우 이 데이터를 날짜별로 파티셔닝할 수 있습니다.

 

데이터베이스 샤딩

수평 파티셔닝(horizontal partitioning)과 비슷한 개념입니다. 하지만 수평 파티셔닝은 하나의 데이터베이스에서 분할이 이루어 이루어 지고, 데이터베이스 샤딩은 하나의 데이터베이스를 여러 개의 물리적으로 분리된 데이터베이스로 분할 합니다. 이 분할된 각각의 물리적인 데이터베이스를 샤드라고 부릅니다. 각 샤드는 독립적인 서버에 위치할 수 있으며, 전체 데이터베이스 시스템의 성능을 향상시키고 스케일링을 가능하게 합니다.

샤딩은 데이터베이스를 수평으로 분할하며, 각 샤드에는 테이블의 다른 행 세트가 포함됩니다. 이는 예를 들어, 유저 ID, 지리적 위치 등의 기준에 따라 이루어질 수 있습니다.

 

파티셔닝과 샤딩의 차이점

정리하자면 데이터베이스 파티셔닝과 샤딩 모두 데이터를 분할하는 방법이지만, 가장 차이점은 파티셔닝은 데이터베이스 시스템 내에서 이루어지며, 샤딩은 여러 물리적 데이터베이스 시스템 간에 데이터를 분배한다는 점입니다. 이에 따라, 샤딩은 대체로 파티셔닝보다 복잡한 관리와 조정을 필요로 합니다. 그러나, 샤딩은 데이터베이스의 수평적 확장을 가능하게 함으로써 규모의 데이터 관리를 가능하게 합니다.

반응형