19.3.4 파티션 유지 보수
일부 테이블 및 파티션 유지 관리 작업은 MySQL 5.6의 분할 된 테이블에서 이러한 목적을 실현하기위한 SQL 문을 사용하여 실행할 수 있습니다.
파티션 된 테이블의 테이블 유지 보수는 파티션 된 테이블에서 지원되는 CHECK TABLE
, OPTIMIZE TABLE
, ANALYZE TABLE
및 REPAIR TABLE
문을 사용하여 얻을 수 있습니다.
다음 목록에서 설명하고있는 바와 같이, ALTER TABLE
에 일부 확장을 사용하여 하나 이상의 파티션에 이러한 유형의 작업을 직접 수행 할 수 있습니다.
Rebuilding partitions 파티션을 재구성합니다. 이것은 파티션에 저장되어있는 모든 레코드를 삭제 한 후 그들을 다시 삽입하는 것과 같은 효과가 있습니다. 이것은 조각 모음에 도움이 될 수 있습니다.
예 :
ALTER TABLE t1 REBUILD PARTITION p0, p1;
Optimizing partitions 파티션에서 많은 행을 삭제 한 경우 또는 가변 길이 행을 가진 (즉,
VARCHAR
,BLOB
또는TEXT
컬럼을 가진) 파티션 된 테이블에 많은 변경을 행한 경우ALTER TABLE ... OPTIMIZE PARTITION
을 사용하여 사용하지 않는 공간을 확보하거나 파티션 데이터 파일을 조각 모음 할 수 있습니다.예 :
ALTER TABLE t1 OPTIMIZE PARTITION p0, p1;
지정된 파티션에
OPTIMIZE PARTITION
을 사용하는 것은 그 파티션에CHECK PARTITION
,ANALYZE PARTITION
및REPAIR PARTITION
을 실행하는 것과 같습니다.일부 MySQL 스토리지 엔진 (
InnoDB
포함)는 각 파티션의 최적화를 지원하지 않습니다. 이러한 경우ALTER TABLE ... OPTIMIZE PARTITION
이 전체 테이블을 재구성됩니다. MySQL 5.6.9 이후에서는 이러한 테이블에서이 문을 실행하면 테이블 전체가 재 구축 및 분석하고 해당 경고가 발행됩니다 (Bug # 11751825, Bug # 42822). 이 문제를 해결하려면 대신ALTER TABLE ... REBUILD PARTITION
및ALTER TABLE ... ANALYZE PARTITION
을 사용하십시오.Analyzing partitions 작업은 파티션 키 분포를 읽고 저장합니다.
예 :
ALTER TABLE t1 ANALYZE PARTITION p3;
Repairing partitions 이것은 손상된 파티션을 복구합니다.
예 :
ALTER TABLE t1 REPAIR PARTITION p0,p1;
Checking partitions 분할되지 않은 테이블에서
CHECK TABLE
을 사용할 수와 거의 마찬가지로 파티션의 오류를 확인할 수 있습니다.예 :
ALTER TABLE trb3 CHECK PARTITION p1;
이 명령은 테이블
t1
파티션p1
의 데이터 또는 인덱스가 손상된 여부를 통지합니다. 이 경우ALTER TABLE ... REPAIR PARTITION
을 사용하여 파티션을 복구하십시오.
위 목록의 각 문은 파티션 이름의 목록 대신 키워드 ALL
도 지원됩니다. ALL
을 사용하면 테이블의 모든 파티션에 문이 작용합니다.
파티션 된 테이블에서는 mysqlcheck 및 myisamchk의 사용은 지원되지 않습니다.
MySQL 5.6에서는 ALTER TABLE ... TRUNCATE PARTITION
을 사용하여 파티션을자를 수 있습니다. 이 문은 TRUNCATE TABLE
은 테이블에서 모든 행을 삭제하는 것과 마찬가지로, 하나 이상의 파티션에서 모든 행을 제거하는 데 사용할 수 있습니다.
ALTER TABLE ... TRUNCATE PARTITION ALL
테이블의 모든 파티션을 자릅니다.
ANALYZE
, CHECK
, OPTIMIZE
, REBUILD
, REPAIR
및 TRUNCATE
조작은 서브 파티션은 지원되지 않습니다.