Spec-Zone .ru
спецификации, руководства, описания, API

18.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 составить таблицу MySQL Cluster, используя любой тип разделения кроме [LINEAR] KEY, и попытка сделать так сбои с ошибкой.

Кроме того, максимальное количество разделов, которые могут быть определены для NDB таблица зависит от числа узлов данных и групп узла в кластере, версии программного обеспечения MySQL Cluster в использовании, и других факторах. См. NDB и определяемое пользователем разделение, для получения дополнительной информации.

CREATE TABLE и ALTER TABLE операторы, которые вызвали бы разделенный пользователем NDB таблица, чтобы не встретиться или или оба из следующих двух требований не разрешается, и сбой с ошибкой:

  1. У таблицы должен быть явный первичный ключ.

  2. Все столбцы, перечисленные в выражении разделения таблицы, должны быть частью первичного ключа.

Исключение. Если разделенный пользователем NDB таблица составляется, используя пустой список столбцов (то есть, используя PARTITION BY KEY() или PARTITION BY LINEAR KEY()), тогда никакой явный первичный ключ не требуется.

Обновление разделенных таблиц. Выполняя обновление, таблицы, которые делятся KEY и которые используют любой механизм хранения кроме NDB должен быть выведен и перезагружен.

Тот же самый механизм хранения для всех разделов. Все разделы разделенной таблицы должны использовать тот же самый механизм хранения, и это должен быть тот же самый механизм хранения, используемый таблицей в целом. Кроме того, если Вы не определяете механизм на табличном уровне, то нужно сделать или следующего, создавая или изменяя разделенную таблицу: