26.3 Управление разбиением
Существует несколько способов изменения таблиц с разбиением с помощью SQL-запросов; можно добавлять, удалять, переопределять, объединять или разделять существующие разбиения, используя расширения разбиения к оператору ALTER
TABLE. Также существуют способы получения информации о таблицах и разбиениях с разбиением. Эти темы обсуждаются в последующих разделах.
Сведения об управлении разбиениями в таблицах, разбиение которых основано на
RANGEилиLIST, см. в разделе 26.3.1, «Управление разбиениями RANGE и LIST».Обсуждение управления разбиениями
HASHиKEYсм. в разделе 26.3.2, «Управление разбиениями HASH и KEY».О механизмах, предоставляемых MySQL 9.2 для получения информации о таблицах и разбиениях с разбиением, см. в разделе 26.3.5, «Получение информации о разбиениях».
Обсуждение выполнения операций технического обслуживания разбиений см. в разделе 26.3.4, «Техническое обслуживание разбиений».
Все разбиения таблицы с разбиением должны иметь одинаковое количество подразделов; изменить подразбиение после создания таблицы невозможно.
Для изменения схемы разбиения таблицы достаточно использовать оператор ALTER
TABLE с параметром 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; см. раздел 15.1.9, «Оператор ALTER TABLE».
В операторе ALTER
TABLE можно использовать только один из следующих ключевых слов: PARTITION BY, ADD
PARTITION, DROP PARTITION, REORGANIZE PARTITION, или COALESCE
PARTITION. Если, например, вы хотите удалить разбиение и переупорядочить оставшиеся разбиения таблицы, вам нужно сделать это в двух отдельных операторах ALTER
TABLE (один с помощью DROP
PARTITION, а затем второй с помощью REORGANIZE PARTITION).
Вы можете удалить все строки из одного или нескольких выбранных разбиений, используя ALTER TABLE ...
TRUNCATE PARTITION.
© 2025 Oracle
Licensed under the GPLv2 License.