19.3 파티션 관리
MySQL 5.6는 분할 된 테이블을 변경하기 위해 여러 가지 방법을 제공합니다. 기존의 파티션을 추가, 삭제, 재정 병합 또는 분할 할 수 있습니다. 이러한 모든 작업은 ALTER TABLE
문 파티셔닝 확장을 사용하여 실행할 수 있습니다. 분할 된 테이블 및 파티션에 대한 정보를 얻는 방법도 있습니다. 다음 절에서는 다음 항목에 대해 설명합니다.
RANGE
또는LIST
로 파티션 된 테이블의 파티션 관리 내용은 섹션 19.3.1 "RANGE 및 LIST 파티션 관리" 를 참조하십시오.HASH
및KEY
파티션 관리 내용은 섹션 19.3.2 "HASH 및 KEY 파티션 관리" 를 참조하십시오.분할 된 테이블 및 파티션에 대한 정보를 얻기 위해 MySQL 5.6에서 제공되는 메커니즘에 대해서는 섹션 19.3.5 "파티션에 대한 정보를 얻기" 를 참조하십시오.
파티션 유지 관리 작업의 수행 내용은 섹션 19.3.4 "파티션 관리" 를 참조하십시오.
MySQL 5.6에서 파티션 된 테이블의 모든 파티션에 같은 수의 서브 파티션이 필요하며, 테이블이 작성된 후에 서브 파티셔닝을 변경할 수 없습니다.
테이블의 파티셔닝 구성표를 변경하기 위해 필요한 것은 partition_options
절 함께 ALTER TABLE
문을 사용하는 것뿐입니다. 이 어구의 구문은 분할 된 테이블을 만드는 CREATE TABLE
에서 사용되는 것과 동일한 반드시 키워드 PARTITION BY
로 시작합니다. 다음 CREATE TABLE
문을 사용하여 범위로 파티션 된 테이블이 있다고합니다.
CREATE TABLE trb3 (id INT, name VARCHAR(50), purchased DATE) PARTITION BY RANGE( YEAR(purchased) ) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (1995), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (2005) );
이 테이블을 키에 의한 분할로 분할하고 다시 키를 기반으로하는 id
컬럼 값을 사용하는 2 개의 파티션으로 분할하기 위해 다음 문을 사용할 수 있습니다.
ALTER TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;
이것은 테이블을 삭제하고 CREATE TABLE trb3 PARTITION BY KEY(id) PARTITIONS 2;
를 사용하여 다시 작성하는 것과 같은 효과를 테이블의 구조에 대해 가지고 있습니다.
ALTER TABLE ... ENGINE = ...
테이블에 사용되는 스토리지 엔진만을 변경하고 테이블의 파티셔닝 구성표는 그대로 있습니다. 테이블 파티셔닝을 삭제하려면 ALTER TABLE ... REMOVE PARTITIONING
을 사용합니다. 섹션 13.1.7 "ALTER TABLE 구문" 을 참조하십시오.
ALTER TABLE
문에 사용할 수있는 단일 PARTITION BY
, ADD PARTITION
, DROP PARTITION
, REORGANIZE PARTITION
또는 COALESCE PARTITION
절뿐입니다. 예를 들어, 파티션을 삭제하고 테이블의 나머지 파티션을 재구성하는 경우는 두 개의 별도의 ALTER TABLE
문에서 이렇게해야합니다 ( DROP PARTITION
을 사용하는 것과 REORGANIZE PARTITIONS
을 사용하는 것).
MySQL 5.6에서는 ALTER TABLE ... TRUNCATE PARTITION
을 사용하여 선택한 하나 이상의 파티션에서 모든 행을 삭제할 수 있습니다.