26.3 Управление разбиением
Существует несколько способов изменения таблиц с разбиением с помощью операторов SQL; можно добавлять, удалять, переопределять, объединять или разделять существующие разбиения, используя расширения разбиения для оператора ALTER
TABLE. Также есть способы получения информации о таблицах с разбиением и самих разбиениях. Мы рассмотрим эти темы в следующих разделах.
Сведения об управлении разбиениями в таблицах, разделенных по
RANGEилиLIST, см. в разделе 26.3.1 «Управление разбиениями RANGE и LIST».Об управлении разбиениями
HASHиKEYсм. в разделе 26.3.2 «Управление разбиениями HASH и KEY».Раздел 26.3.5 «Получение информации о разбиениях» описывает механизмы, предоставляемые в MySQL 8.4 для получения информации о таблицах с разбиением и самих разбиениях.
Об операциях технического обслуживания разбиений см. в разделе 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.