[sql] 파티셔닝 작업을 위한 SQL 문법
데이터베이스에서 파티셔닝은 대량의 데이터를 관리하기 위해 사용되는 중요한 기술입니다. 데이터베이스 테이블을 나눠서 저장함으로써 쿼리 성능을 향상시키고 데이터 관리를 용이하게 할 수 있습니다. 이번에는 MySQL에서 파티셔닝을 설정하는 SQL 문법에 대해 알아보겠습니다.
테이블 생성 시 파티셔닝 설정
테이블을 생성할 때 파티셔닝을 설정하려면 PARTITION BY
키워드를 사용합니다. MySQL에서는 여러 가지 파티셔닝 방법을 지원하며, 각 방법에 따라 다양한 옵션을 설정할 수 있습니다. 주요한 파티셔닝 방법으로는 다음과 같은 것들이 있습니다:
- Range 파티셔닝: 범위에 따라 파티션을 나눕니다. (
PARTITION BY RANGE
) - Hash 파티셔닝: 해시 값을 기준으로 파티션을 나눕니다. (
PARTITION BY HASH
) - List 파티셔닝: 목록에 따라 파티션을 나눕니다. (
PARTITION BY LIST
) - Key 파티셔닝: 특정 열의 값을 기준으로 파티션을 나눕니다. (
PARTITION BY KEY
)
이들을 활용한 예시를 살펴보겠습니다.
CREATE TABLE sales (
id INT NOT NULL,
product_name VARCHAR(100) NOT NULL,
sale_date DATE NOT NULL
)
PARTITION BY RANGE(YEAR(sale_date)) (
PARTITION p0 VALUES LESS THAN (2010),
PARTITION p1 VALUES LESS THAN (2020),
PARTITION p2 VALUES LESS THAN (2030)
);
위의 SQL은 sales
테이블을 연도에 따라 3개의 파티션으로 나누는 예시입니다.
이미 존재하는 테이블에 파티셔닝 설정
기존 테이블에 파티셔닝을 설정하려면 ALTER TABLE
문을 사용합니다. 이때 파티션을 설정할 기준 열을 선택하고 원하는 파티셔닝 방법과 옵션을 설정합니다.
ALTER TABLE sales
PARTITION BY RANGE(YEAR(sale_date)) (
PARTITION p0 VALUES LESS THAN (2010),
PARTITION p1 VALUES LESS THAN (2020),
PARTITION p2 VALUES LESS THAN (2030)
);
파티션 관리
테이블에 파티셔닝이 설정되면 데이터 추가, 이동, 삭제 등의 파티션 관리 작업을 수행할 수 있습니다. 이를 위해서는 ALTER TABLE
문과 함께 REORGANIZE PARTITION
, ADD PARTITION
, DROP PARTITION
등의 옵션을 활용하게 됩니다.
이렇게 MySQL에서 파티셔닝을 설정하고 관리하는 방법에 대해 간략히 살펴보았습니다. 파티셔닝은 대규모 데이터베이스 환경에서 성능을 향상시키고 데이터 관리를 효율적으로 하는데 큰 도움이 됩니다.
더 많은 정보는 MySQL 공식 문서를 참조하시기 바랍니다.