InfoGrab DocsInfoGrab Docs

해시 파티셔닝

요약

해시 파티셔닝은 지정된 칼럼(일반적으로 ID 칼럼)에 해시 함수를 적용하여 대형 테이블을 더 작고 관리하기 쉬운 파티션으로 분할하는 방법입니다. 데이터 분배: 행은 ID의 해시 값과 모듈러스-나머지 계산을 기반으로 파티션에 할당됩니다.

해시 파티셔닝은 지정된 칼럼(일반적으로 ID 칼럼)에 해시 함수를 적용하여 대형 테이블을 더 작고 관리하기 쉬운 파티션으로 분할하는 방법입니다. 특정 사용 사례에서 고유한 장점을 제공하지만, 몇 가지 제한 사항도 있습니다.

주요 사항:

  • 데이터 분배: 행은 ID의 해시 값과 모듈러스-나머지 계산을 기반으로 파티션에 할당됩니다. 예를 들어, MODULUS 64REMAINDER 1HASH(ID)에 의해 파티셔닝하는 경우, hash(ID) % 64 == 1인 행이 해당 파티션에 저장됩니다.

  • 쿼리 요구 사항: 해시 파티셔닝은 대부분의 쿼리에 WHERE hashed_column = ? 조건이 포함된 경우에 가장 잘 작동하며, 이를 통해 PostgreSQL이 관련 파티션을 빠르게 식별할 수 있습니다.

  • ID 고유성: 해시 파티셔닝은 데이터베이스 수준에서 여러 파티션 전반에 걸쳐 ID 고유성을 보장할 수 있는 유일한 파티셔닝 방법입니다(복잡한 목록 파티셔닝 제외).

사전 결정 사항:

  • 파티션 수는 테이블 생성 전에 결정해야 하며, 나중에 쉽게 추가할 수 없습니다. 따라서 향후 데이터 증가를 미리 예측하는 것이 중요합니다.

지원되지 않는 쿼리 유형:

  • 범위 쿼리 (WHERE id BETWEEN ? AND ?)와 다른 키에 의한 조회 (WHERE other_id = ?)는 해시 파티셔닝 테이블에서 직접 지원되지 않습니다.

고려 사항:

  • 향후 성장을 수용하기 위해 많은 수의 파티션을 선택하세요.

  • 애플리케이션 쿼리가 해시 파티셔닝 요구 사항과 일치하는지 확인하세요.

  • 범위 쿼리나 다른 키에 의한 조회가 필수적인 경우, 범위 파티셔닝이나 목록 파티셔닝과 같은 대안을 검토하세요.

요약하면, 해시 파티셔닝은 특히 파티션 전반에 걸쳐 ID 고유성이 중요한 특정 시나리오에 유용한 도구입니다. 그러나 구현 전에 제한 사항과 쿼리 패턴을 신중하게 고려하는 것이 필수적입니다.

해시 파티셔닝

GitLab v19.1
원문 보기
요약

해시 파티셔닝은 지정된 칼럼(일반적으로 ID 칼럼)에 해시 함수를 적용하여 대형 테이블을 더 작고 관리하기 쉬운 파티션으로 분할하는 방법입니다. 데이터 분배: 행은 ID의 해시 값과 모듈러스-나머지 계산을 기반으로 파티션에 할당됩니다.

해시 파티셔닝은 지정된 칼럼(일반적으로 ID 칼럼)에 해시 함수를 적용하여 대형 테이블을 더 작고 관리하기 쉬운 파티션으로 분할하는 방법입니다. 특정 사용 사례에서 고유한 장점을 제공하지만, 몇 가지 제한 사항도 있습니다.

주요 사항:

  • 데이터 분배: 행은 ID의 해시 값과 모듈러스-나머지 계산을 기반으로 파티션에 할당됩니다. 예를 들어, MODULUS 64REMAINDER 1HASH(ID)에 의해 파티셔닝하는 경우, hash(ID) % 64 == 1인 행이 해당 파티션에 저장됩니다.

  • 쿼리 요구 사항: 해시 파티셔닝은 대부분의 쿼리에 WHERE hashed_column = ? 조건이 포함된 경우에 가장 잘 작동하며, 이를 통해 PostgreSQL이 관련 파티션을 빠르게 식별할 수 있습니다.

  • ID 고유성: 해시 파티셔닝은 데이터베이스 수준에서 여러 파티션 전반에 걸쳐 ID 고유성을 보장할 수 있는 유일한 파티셔닝 방법입니다(복잡한 목록 파티셔닝 제외).

사전 결정 사항:

  • 파티션 수는 테이블 생성 전에 결정해야 하며, 나중에 쉽게 추가할 수 없습니다. 따라서 향후 데이터 증가를 미리 예측하는 것이 중요합니다.

지원되지 않는 쿼리 유형:

  • 범위 쿼리 (WHERE id BETWEEN ? AND ?)와 다른 키에 의한 조회 (WHERE other_id = ?)는 해시 파티셔닝 테이블에서 직접 지원되지 않습니다.

고려 사항:

  • 향후 성장을 수용하기 위해 많은 수의 파티션을 선택하세요.

  • 애플리케이션 쿼리가 해시 파티셔닝 요구 사항과 일치하는지 확인하세요.

  • 범위 쿼리나 다른 키에 의한 조회가 필수적인 경우, 범위 파티셔닝이나 목록 파티셔닝과 같은 대안을 검토하세요.

요약하면, 해시 파티셔닝은 특히 파티션 전반에 걸쳐 ID 고유성이 중요한 특정 시나리오에 유용한 도구입니다. 그러나 구현 전에 제한 사항과 쿼리 패턴을 신중하게 고려하는 것이 필수적입니다.