Spec-Zone.ru › MySQL 8.4

26.3 Управление разбиением

  • 26.3.1 Управление разбиениями RANGE и LIST
  • 26.3.2 Управление разбиениями HASH и KEY
  • 26.3.3 Обмен разбиениями и подразбиениями с таблицами
  • 26.3.4 Техническое обслуживание разбиений
  • 26.3.5 Получение информации о разбиениях

Существует несколько способов изменения таблиц с разбиением с помощью операторов 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/partitioning-management.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API