19.6.2 스토리지 엔진 관련 파티셔닝 제한
다음의 제한은 테이블 사용자 정의 파티셔닝 스토리지 엔진을 사용할 때 적용됩니다.
MERGE 스토리지 엔진 사용자 정의 파티셔닝 및 MERGE
스토리지 엔진은 호환되지 않습니다. MERGE
스토리지 엔진을 사용하는 테이블은 분할 할 수 없습니다. 파티션 된 테이블은 병합 할 수 없습니다.
FEDERATED 스토리지 엔진 FEDERATED
테이블 파티셔닝은 지원되지 않습니다. 파티션 된 FEDERATED
테이블을 만들 수 없습니다.
CSV 스토리지 엔진 CSV
스토리지 엔진을 사용하는 파티션 된 테이블은 지원되지 않습니다. 파티션 된 CSV
테이블을 생성 할 수 없습니다.
InnoDB 스토리지 엔진 InnoDB
외부 키와 MySQL 파티셔닝은 호환되지 않습니다. 파티션 된 InnoDB
테이블은 외래 키 참조를 가질 수없고 외부 키에 의해 참조되는 컬럼을 가질 수 없습니다. 외부 키를 가지고 있고, 외부 키에 의해 참조되거나하는 InnoDB
테이블은 분할 할 수 없습니다.
또한 ALTER TABLE ... OPTIMIZE PARTITION
은 InnoDB
스토리지 엔진을 사용하는 파티션 된 테이블에서 제대로 작동하지 않습니다. 그런 테이블의 경우, 대신 ALTER TABLE ... REBUILD PARTITION
및 ALTER TABLE ... ANALYZE PARTITION
을 사용하십시오. 자세한 내용은 섹션 13.1.7.1 "ALTER TABLE 파티션 작업" 을 참조하십시오.
NDB 스토리지 엔진 (MySQL Cluster) KEY
( LINEAR KEY
포함) 자동 파티션은 NDB
스토리지 엔진에서 지원하는 유일한 파티션 타입입니다. MySQL Cluster NDB 7.3에서는 [ LINEAR
] KEY
이외의 파티션 유형을 사용하여 MySQL Cluster 테이블을 만들 수 없으며이를 시도하면 오류와 함께 실패합니다.
또한 NDB
테이블에 정의 할 수있는 최대 파티션 수는 클러스터의 데이터 노드와 노드 그룹의 수, 사용하는 MySQL Cluster 소프트웨어의 버전 및 기타 요인에 따라 달라집니다. 자세한 내용은 NDB 및 사용자 정의 파티셔닝 을 참조하십시오.
사용자 분할 된 NDB
테이블이 다음의 두 가지 요구 사항 중 하나 또는 모두를 충족하지 못할 CREATE TABLE
문과 ALTER TABLE
문은 허용되지 않고 오류와 함께 실패합니다.
테이블에 명시적인 기본 키가 존재해야합니다.
테이블 파티셔닝 식에 지정된 모든 컬럼이 기본 키의 일부 여야합니다.
Exception. 사용자 분할 된 NDB
테이블이 빈 컬럼리스트를 사용하여 (즉, PARTITION BY KEY()
또는 PARTITION BY LINEAR KEY()
를 사용하여) 작성된 경우 명시적인 기본 키는 필요하지 않습니다 .
Upgrading partitioned tables. 업그레이드를 수행 할 때 KEY
에 의해 분할되고 NDB
이외의 스토리지 엔진을 사용하는 테이블은 덤프하고 다시로드해야합니다.
Same storage engine for all partitions. 파티션 된 테이블의 모든 파티션은 동일한 스토리지 엔진을 사용해야 그것이 테이블이 전체적으로 사용하는 동일한 스토리지 엔진이어야합니다. 또한 테이블 수준에서 엔진을 지정하지 않는 경우는 분할 된 테이블을 만들거나 변경할 때 다음 중 하나를 수행해야합니다.
모든 파티션 또는 서브 파티션에 엔진을 지정하지
모든 파티션 또는 서브 파티션에 엔진을 지정