26.6.2 Ограничения разбиения, связанные с движками хранения
В MySQL 9.2 поддержка разбиения фактически не предоставляется сервером MySQL, а зависит от собственного или встроенного обработчика разбиения движка таблиц. В MySQL 9.2 только движки хранения InnoDB и NDB предоставляют встроенные обработчики разбиения. Это означает, что таблицы с разбиением нельзя создавать с помощью других движков хранения, кроме этих. (Вы должны использовать MySQL NDB Cluster с движком хранения NDB, чтобы создавать таблицы NDB).
Движок хранения InnoDB. InnoDB внешние ключи и разбиение MySQL несовместимы. Разбитые InnoDB таблицы не могут иметь внешние ключи, а также столбцы, ссылающиеся на внешние ключи. InnoDB таблицы, имеющие или ссылающиеся на внешние ключи, не могут быть разбитыми.
ALTER
TABLE ... OPTIMIZE PARTITION не работает корректно с разбитыми таблицами, использующими InnoDB. Для таких таблиц используйте ALTER TABLE ... REBUILD PARTITION и ALTER TABLE ... ANALYZE PARTITION. Дополнительную информацию см. в разделе 15.1.9.1, «Операции ALTER TABLE с разбиением».
Пользовательское разбиение и движок хранения NDB (NDB Cluster). Разбиение по KEY (включая LINEAR KEY) — единственный тип разбиения, поддерживаемый движком хранения NDB. В NDB Cluster в обычных обстоятельствах нельзя создать таблицу NDB Cluster с любым типом разбиения, кроме [LINEAR] KEY, и попытка сделать это завершается ошибкой.
Максимальное количество разделов, которое можно определить для таблицы NDB, зависит от количества узлов данных и групп узлов в кластере, версии используемого программного обеспечения NDB Cluster и других факторов. Дополнительную информацию см. в NDB и пользовательское разбиение.
Максимальный объем данных фиксированного размера, который можно хранить в каждом разделе таблицы NDB, составляет 128 ТБ. Ранее эта величина составляла 16 ГБ.
CREATE TABLE и ALTER
TABLE операторы, которые могли бы привести к тому, что таблица с пользовательским разбиением NDB не удовлетворяет одному или обоим из следующих двух требований, запрещены и приводят к ошибке:
Таблица должна иметь явный первичный ключ.
Все столбцы, перечисленные в выражении разбиения таблицы, должны быть частью первичного ключа.
Исключение. Если таблица с пользовательским разбиением NDB создается с помощью пустого списка столбцов (то есть с использованием PARTITION BY KEY() или PARTITION BY
LINEAR KEY()), то явный первичный ключ не требуется.
Выбор раздела. Выбор раздела не поддерживается для таблиц NDB. Дополнительную информацию см. в разделе 26.5, «Выбор раздела».
Обновление разбитых таблиц. При выполнении обновления таблицы, разбитые по KEY, должны быть экспортированы и повторно загружены.
Сведения о преобразовании таблиц MyISAM в InnoDB см. в разделе 17.6.1.5, «Преобразование таблиц из MyISAM в InnoDB».
© 2025 Oracle
Licensed under the GPLv2 License.