728x90
파티션 (Partition)
파티션이란 논리적인 하나의 테이블이나 인덱스를 여러 개의 파티션으로 분할 하는 기능을 말함
크기가 큰 테이블에 쿼리를 수행 할 경우 DB에 상당한 부하가 걸리기때문에,
파티션을 통해 특정 데이터에 대한 접근 시간을 줄이고, 쿼리의 실행 속도를 향상 시키는 데 도움을 줄 수 있음
각 파티션 별로 독립적으로 백업하고 복구가 가능하지만,
테이블 간 Join이 일어날 경우 비용이 증가할 수 있음
파티셔닝 적용
✔ MySQL 기준
1. 파티셔닝을 적용 할 테이블을 생성할 때, 파티션을 지원하도록 설정
CREATE TABLE 테이블명 (
컬럼1 데이터_타입,
컬럼2 데이터_타입,
...
) PARTITION BY {RANGE|LIST|HASH} (파티션_키);
파티션 키는 파티션을 나눌 기준이 되는 열을 지정함
RANGE, LIST, HASH 중 하나의 파티션 타입을 선택할 수 있음
2. 파티션 정의 추가
테이블을 생성한 후 파티션 정의를 추가해야 함
각 파티션의 범위 또는 목록을 지정함
- RANGE 파티션 : 연속적인 값의 범위를 기준으로 파티션을 정의
ALTER TABLE 테이블명
PARTITION BY RANGE (파티션_키) (
PARTITION 파티션명1 VALUES LESS THAN (값),
PARTITION 파티션명2 VALUES LESS THAN (값),
...
);
- LIST 파티션 : 특정 값을 기준으로 파티션을 정의
ALTER TABLE 테이블명
PARTITION BY LIST (파티션_키) (
PARTITION 파티션명1 VALUES IN (값1, 값2, ...),
PARTITION 파티션명2 VALUES IN (값3, 값4, ...),
...
);
- HASH 파티션 : 해시 함수를 사용하여 파티션을 정의
ALTER TABLE 테이블명
PARTITION BY HASH (파티션_키)
PARTITIONS 파티션_수;
3. 파티션 관리
ALTER TABLE 문을 사용하여 파티션 관리 작업을 수행 할 수 있음
- 파티션 추가
ALTER TABLE 테이블명 ADD PARTITION (
PARTITION 파티션명 VALUES LESS THAN (값)
);
- 파티션 제거
ALTER TABLE 테이블명 DROP PARTITION 파티션명;
- 파티션 재구성
ALTER TABLE 테이블명 REORGANIZE PARTITION 파티션명 INTO (
PARTITION 새로운_파티션명 VALUES LESS THAN (값),
...
);
반응형
'💾 Data > SQL' 카테고리의 다른 글
[SQL] 테이블 변경 (ALTER) (0) | 2023.08.31 |
---|---|
[MySQL] 데이터베이스 및 테이블 별 용량 조사 (0) | 2023.06.27 |
[SQL] 프로시저와 함수 (0) | 2023.05.26 |
[MySQL] 데이터 타입 변환하기 (0) | 2023.05.18 |
[SQL] View (0) | 2023.05.14 |