Spec-Zone .ru
спецификации, руководства, описания, API
|
The following limitations apply to the use of storage engines with user-defined partitioning of tables.
MERGE
storage engine. User-defined partitioning and the MERGE
storage engine are not compatible. Tables using the MERGE
storage engine cannot be partitioned. Partitioned tables cannot be merged.
FEDERATED
storage engine. Partitioning of FEDERATED
tables is not supported; it is not possible to create partitioned FEDERATED
tables.
CSV
storage engine. Partitioned tables using the CSV
storage engine are not supported; it is not possible to create partitioned CSV
tables.
InnoDB
storage engine. InnoDB
foreign keys and MySQL partitioning are not compatible. Partitioned InnoDB
tables cannot have foreign key references, nor can they have columns
referenced by foreign keys. InnoDB
tables which have or which are referenced by
foreign keys cannot be partitioned.
In addition, ALTER TABLE ...
OPTIMIZE PARTITION
does not work correctly with partitioned tables that use the InnoDB
storage engine. Use ALTER TABLE ... REBUILD
PARTITION
and ALTER TABLE ... ANALYZE PARTITION
, instead, for such tables.
For more information, see Section 13.1.7.1, "ALTER TABLE
Partition Operations".
NDB
storage engine (MySQL Cluster). Partitioning by KEY
(including LINEAR KEY
) is the only type of partitioning supported for the NDB
storage engine. It is not possible in MySQL Cluster NDB 7.3 to create a MySQL Cluster table using any
partitioning type other than [LINEAR
] KEY
, and
attempting to do so fails with an error.
In addition, the maximum number of partitions that can be defined for an NDB
table depends on the number of data nodes and node groups in the cluster, the
version of the MySQL Cluster software in use, and other factors. See NDB
and user-defined partitioning, for more information.
CREATE
TABLE
and ALTER
TABLE
statements that would cause a user-partitioned NDB
table not to meet either or both of the following two requirements are not
permitted, and fail with an error:
The table must have an explicit primary key.
All columns listed in the table's partitioning expression must be part of the primary key.
Exception. If a user-partitioned NDB
table is created using an empty column-list (that is, using PARTITION BY KEY()
or PARTITION BY LINEAR KEY()
), then
no explicit primary key is required.
Upgrading partitioned tables. When performing an upgrade, tables which are partitioned by KEY
and which use any storage engine other than NDB
must be dumped and reloaded.
Same storage engine for all partitions. All partitions of a partitioned table must use the same storage engine and it must be the same storage engine used by the table as a whole. In addition, if one does not specify an engine on the table level, then one must do either of the following when creating or altering a partitioned table:
Do not specify any engine for any partition or subpartition
Specify the engine for all partitions or subpartitions