[sql] 테이블 파티셔닝

테이블 파티셔닝은 대량의 데이터를 효율적으로 저장하고 관리하기 위한 방법으로, 데이터를 파티션에 분산하여 쿼리 성능을 향상시키는 기술입니다.

파티셔닝 종류

테이블 파티셔닝에는 여러 가지 종류가 있습니다. 대표적으로 range, hash, list, composite 등의 방식이 있으며, 각각의 방식은 데이터의 특성에 따라 선택할 수 있습니다.

Range 파티셔닝

Range 파티셔닝은 지정한 기준에 따라 데이터를 분류하는 방식으로, 일정한 범위로 파티션을 나누어 저장합니다. 일반적으로 날짜와 같은 연속적인 값에 적합한 방식입니다.

CREATE TABLE sales (
    id INT,
    sale_date DATE,
    amount DECIMAL(10, 2)
)
PARTITION BY RANGE (YEAR(sale_date)) (
    PARTITION p0 VALUES LESS THAN (2000),
    PARTITION p1 VALUES LESS THAN (2010),
    PARTITION p2 VALUES LESS THAN (2020)
);

Hash 파티셔닝

Hash 파티셔닝은 특정 칼럼의 값에 기반하여 데이터를 분산하여 저장합니다. 동일한 값은 항상 동일한 파티션에 위치하므로 데이터의 고르게 분산이 필요한 경우 유용합니다.

CREATE TABLE user_data (
    id INT,
    name VARCHAR(50),
    email VARCHAR(100)
)
PARTITION BY HASH(id)
PARTITIONS 4;

파티셔닝의 장점

파티셔닝의 고려 사항

데이터 양과 쿼리 패턴에 따라 적절한 파티셔닝 방법을 선택하여 데이터베이스의 성능을 최적화할 수 있습니다.

참고문헌: