[sql] 테이블 파티셔닝을 활용한 용량 관리
테이블 파티셔닝은 대용량의 데이터를 보다 효과적으로 관리하기 위한 기술 중 하나입니다. 테이블 파티셔닝은 데이터를 논리적 또는 물리적 기준에 따라 여러 파티션으로 분리하여 저장하는 방법을 말합니다. 이를 통해 데이터 접근 및 관리 성능을 향상시킬 수 있습니다.
테이블 파티셔닝의 장점
- 성능 향상: 데이터의 범위를 좁혀 쿼리를 실행할 때 필요한 데이터 양을 줄여 성능을 향상시킬 수 있습니다.
- 용량 관리: 파티셔닝된 테이블은 데이터를 논리적 또는 물리적으로 분리하므로 용량을 보다 효과적으로 관리할 수 있습니다.
파티셔닝 기법
Range 파티셔닝
데이터의 범위에 따라 파티션을 나누는 기법으로, 날짜나 숫자 범위에 따라 파티션을 나눌 수 있습니다.
CREATE TABLE sales (
sale_id INT NOT NULL,
sale_date DATE,
amount DECIMAL(10,2)
)
PARTITION BY RANGE (YEAR(sale_date)) (
PARTITION p0 VALUES LESS THAN (1990),
PARTITION p1 VALUES LESS THAN (2000),
PARTITION p2 VALUES LESS THAN (2010),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
List 파티셔닝
특정 열의 목록에 따라 파티션을 나누는 기법입니다.
CREATE TABLE customer (
customer_id INT NOT NULL,
last_name VARCHAR(50),
first_name VARCHAR(50)
)
PARTITION BY LIST (COUNTRY) (
PARTITION pUSA VALUES IN ('USA'),
PARTITION pCANADA VALUES IN ('CAN', 'CANADA'),
PARTITION pOTHER VALUES IN (DEFAULT)
);
주의사항
- 파티셔닝은 테이블의 관리 및 유지보수를 복잡하게 할 수 있으므로 신중하게 사용해야 합니다.
- 파티셔닝된 테이블의 인덱스 또한 파티션에 맞춰 재작성되어야 하므로 이에 대한 추가 작업이 필요합니다.
테이블 파티셔닝을 올바르게 활용하면 대용량의 데이터를 효과적으로 관리할 수 있으며, 이는 데이터베이스 시스템의 성능을 향상시키는 데 기여할 수 있습니다.