[sql] 파티션 테이블의 인덱스 작성 및 최적화 방법

파티션 테이블은 대량의 데이터를 다룰 때 성능을 향상시키는데 도움을 줄 수 있습니다. 이때 적절한 인덱스 작성과 최적화가 중요합니다.

파티션 테이블의 인덱스 작성

파티션 테이블의 인덱스 작성은 파티션 키와 함께 고려되어야 합니다. 이렇게 하면 데이터 검색 효율을 극대화할 수 있습니다. 보통 파티션 키와 함께 사용되는 인덱스는 로컬 파티션 인덱스가 됩니다.

예시

CREATE TABLE sales (
    id INT NOT NULL,
    sale_date DATE,
    amount DECIMAL(10,2),
    ...
)
PARTITION BY RANGE (YEAR(sale_date)) (
    PARTITION p0 VALUES LESS THAN (2015),
    PARTITION p1 VALUES LESS THAN (2016),
    PARTITION p2 VALUES LESS THAN (2017),
    ...
);

CREATE INDEX idx_sales_date ON sales (sale_date, amount) LOCAL;

파티션 테이블의 인덱스 최적화

파티션 테이블의 인덱스 최적화를 위해서는 정기적인 통계 수집인덱스 재구성이 필요합니다. 특히 파티션 테이블은 데이터의 분포도가 다양하기 때문에 통계 수집이 중요합니다. 또한 파티션 간 데이터 불균형이 발생하는 경우, 인덱스 재구성을 통해 성능을 최적화할 수 있습니다.

예시

ANALYZE TABLE sales UPDATE HISTOGRAM ON sale_date;

ALTER TABLE sales REBUILD PARTITION p0, p1, p2;

파티션 테이블의 인덱스 작성과 최적화를 위한 기본적인 방법을 살펴보았습니다. 이를 통해 대량의 데이터를 다루는 시스템에서 뛰어난 성능을 얻을 수 있습니다.

참고: MySQL 공식 문서 - 파티셔닝과 관리