패스잇
시스템 설계 · 중급

대용량 테이블의 관리 및 성능 향상을 위해 파티셔닝(Partitioning)을 고려할 때, 어떤 종류의 파티셔닝(예: Range, List, Hash)을 선택할 수 있으며, 각각의 장단점과 적합한 사용 시나리오는 무엇인가요?

힌트 · 파티셔닝은 테이블을 물리적으로 분리하여 관리 효율성과 쿼리 성능을 높입니다. Range는 시간/숫자 범위, List는 특정 값 목록, Hash는 데이터 균등 분배에 적합하며, 각각 장단점을 가집니다.

Range 파티셔닝List 파티셔닝Hash 파티셔닝파티션 프루닝데이터 분산

모범답안

대용량 테이블 파티셔닝은 성능 향상에 중요한데, Range, List, Hash 파티셔닝을 고려할 수 있습니다.

Range 파티셔닝은 날짜나 숫자 범위 기준으로 데이터를 분할합니다. 예를 들어, 월별 판매 데이터에 적합하며, 특정 기간 데이터 조회 시 성능이 좋습니다. 단점은 데이터가 특정 범위에 몰릴 경우 파티션 간 불균형이 발생할 수 있습니다.

List 파티셔닝은 특정 값 목록을 기준으로 분할합니다. 예를 들어, 국가별 데이터를 분리할 때 유용합니다. 특정 국가 데이터 조회에 효과적이지만, 새로운 값 추가 시 파티션 정의를 변경해야 할 수 있습니다.

Hash 파티셔닝은 해시 함수를 사용하여 데이터를 균등하게 분배합니다. 데이터가 고르게 분포되어야 할 때 유용하지만, 특정 범위 데이터 조회에는 적합하지 않습니다.

각 파티셔닝 방식은 장단점이 뚜렷하므로, 데이터 특성과 쿼리 패턴을 고려하여 적절한 방식을 선택해야 합니다. 파티션 프루닝을 통해 쿼리 성능을 최적화할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 설계 면접 질문

← 데이터베이스 설계 면접 질문 전체 보기