🌿 중급 DB
데이터베이스 파티셔닝 전략
쉽게 이해하기
도서관 책을 어떻게 배치할지 생각해보세요. 출판 연도별로 나눌 수도 있고, 주제별로 나눌 수도 있고, 대출 빈도별로 나눌 수도 있어요. 어떻게 나누느냐에 따라 책 찾는 속도가 달라지죠.
핵심 정리
거대한 테이블을 어떤 기준으로 나눌지 결정하는 방법으로, 성능과 관리 효율성을 높여줘요.
자세히 알아보기
파티셔닝 전략은 대용량 테이블을 어떤 기준으로 분할할지 결정하는 방법이에요. 전략을 잘못 선택하면 오히려 성능이 나빠질 수 있으므로 데이터 접근 패턴을 잘 분석해야 합니다.
가장 흔한 전략은 Range Partitioning(범위 분할)이에요. 날짜나 숫자 범위로 나누는 방식이죠. 예를 들어 주문 테이블을 월별로 나누면 '2024년 1월 주문', '2024년 2월 주문' 이런 식으로 파티션이 생겨요. 최근 데이터만 주로 조회하는 경우 효과적이고, 오래된 파티션은 통째로 삭제하거나 아카이빙하기 쉬워요.
List Partitioning(목록 분할)은 특정 값 목록으로 나눠요. 예를 들어 사용자 테이블을 국가별로 나누면 'US 파티션', 'KR 파티션', 'JP 파티션' 이런 식이죠. 지역별로 다른 서버에 데이터를 두거나, 법적으로 데이터를 분리해야 할 때 유용해요.
Hash Partitioning(해시 분할)은 ID 같은 값을 해시 함수에 넣어서 균등하게 분산시켜요. 데이터가 고르게 분포되지만, 특정 범위만 조회하는 쿼리에는 모든 파티션을 뒤져야 해서 비효율적일 수 있어요.
실무에서는 쿼리 패턴에 따라 전략을 선택해요. 시계열 데이터(로그, 주문 이력)는 Range, 지역별 데이터는 List, 특정 패턴 없이 골고루 분산시킬 땐 Hash를 쓰죠. 가장 자주 사용하는 WHERE 조건이 파티션 키에 포함되어야 효과적이에요.