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

17.3. Управление разделом

17.3.1. Управление RANGE и LIST Разделы
17.3.2. Управление HASH и KEYРазделы
17.3.3. Обмен Разделами и Подразделами с Таблицами
17.3.4. Обслуживание Разделов
17.3.5. Получение информации О Разделах

MySQL 5.7 обеспечивает много способов изменить разделенные таблицы. Возможно добавить, отбросить, пересмотреть, объединить, или разделить существующие разделы. Все эти действия могут быть выполнены, используя расширения разделения ALTER TABLE оператор. Есть также способы получить информацию о разделенных таблицах и разделах. Мы обсуждаем эти темы в разделах, которые следуют.

Отметить

В MySQL 5.7 у всех разделов разделенной таблицы должно быть то же самое число подразделов, и не возможно изменить подразделение, как только таблица была составлена.

Чтобы изменить схему выделения разделов таблицы, необходимо только использовать ALTER TABLE оператор с a partition_options пункт. У этого пункта есть тот же самый синтаксис как который как использующийся с 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 значение столбца как основание для ключа, можно использовать этот оператор:

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.6,"ALTER TABLE Синтаксис".

Важный

Только сингл PARTITION BY, ADD PARTITION, DROP PARTITION, REORGANIZE PARTITION, или COALESCE PARTITION пункт может использоваться в данном ALTER TABLE оператор. Если Вы (например) хотите отбросить раздел и реорганизовать остающиеся разделы таблицы, следует сделать так в два отдельный ALTER TABLE операторы (одно использование DROP PARTITION и затем второе использование REORGANIZE PARTITIONS).

В MySQL 5.7 возможно удалить все строки от один или более выбранное использование разделов ALTER TABLE ... TRUNCATE PARTITION.