Spec-Zone.ru › MySQL 9.2

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».

  • О механизмах, предоставляемых 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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/partitioning-management.html

Spec-Zone.ru

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