Spec-Zone.ru › MySQL 9.2

17.21 Ограничения InnoDB

В этом разделе описываются ограничения для таблиц, индексов, табличных пространств и других аспектов хранилища данных InnoDB.

  • Таблица может содержать не более 1017 столбцов. Виртуальные вычисляемые столбцы включены в это ограничение.

  • Таблица может содержать не более 64 …

  • Префиксный размер ключа индекса ограничен 3072 байтами для таблиц InnoDB, использующих формат строк или .

    Префиксный размер ключа индекса ограничен 767 байтами для таблиц InnoDB, использующих формат строк или . Например, вы можете столкнуться с этим ограничением с индексом длиной более 191 символа по столбцу TEXT или VARCHAR, предполагая кодировку символов utf8mb4 и максимальное значение 4 байта на символ.

    Попытка использовать префиксный размер ключа индекса, превышающий это ограничение, приведет к ошибке.

    Если вы уменьшите размер страницы InnoDB до 8 КБ или 4 КБ, указав параметр innodb_page_size при создании экземпляра MySQL, максимальная длина ключа индекса будет пропорционально уменьшена, исходя из ограничения 3072 байта для размера страницы 16 КБ. То есть максимальная длина ключа индекса составит 1536 байт при размере страницы 8 КБ и 768 байт при размере страницы 4 КБ.

    Ограничения, применяемые к префиксным ключам индексов, также применяются к полным ключам индексов.

  • Для многостолбцовых индексов разрешено не более 16 столбцов. Превышение лимита приведет к ошибке.

    ERROR 1070 (42000): Too many key parts specified; max 16 parts allowed
    
  • Максимальный размер строки, исключая любые столбцы переменной длины, хранящиеся вне страницы, немного меньше половины страницы для размеров страниц 4 КБ, 8 КБ, 16 КБ и 32 КБ. Например, максимальный размер строки для значения по умолчанию innodb_page_size 16 КБ составляет около 8000 байт. Однако для размера страницы InnoDB 64 КБ максимальный размер строки составляет примерно 16000 байт. LONGBLOB и LONGTEXT столбцы должны быть меньше 4 ГБ, а общий размер строки, включая BLOB и TEXT столбцы, должен быть меньше 4 ГБ.

    Если размер строки меньше половины страницы, вся строка хранится локально внутри страницы. Если она превышает половину страницы, столбцы переменной длины выбираются для внешнего хранения вне страницы до тех пор, пока строка не уместится в половине страницы, как описано в разделе 17.11.2, «Управление пространством файлов».

  • Хотя InnoDB поддерживает размер строк, превышающих 65535 байт, сам MySQL накладывает ограничение на размер строки в 65535 байт для суммарного размера всех столбцов. См. раздел 10.4.7, «Ограничения на количество столбцов таблицы и размер строки».

  • Максимальный размер таблицы или табличного пространства зависит от файловой системы сервера, которая может наложить максимальный размер файла, меньший, чем внутреннее ограничение в 64 ТБ, определённое InnoDB. Например, файловая система ext4 в Linux имеет максимальный размер файла 16 ТБ, поэтому максимальный размер таблицы или табличного пространства станет 16 ТБ вместо 64 ТБ. Ещё одним примером является файловая система FAT32, которая имеет максимальный размер файла 4 ГБ.

    Если вам требуется более крупное табличное пространство, настройте его, используя несколько меньших файлов данных вместо одного большого файла данных, или распределите данные таблиц по файлам на таблицу и общим файлам данных табличного пространства.

  • Совокупный максимальный размер файлов журнала InnoDB составляет 512 ГБ.

  • Минимальный размер табличного пространства немного больше 10 МБ. Максимальный размер табличного пространства зависит от размера страницы InnoDB.

    Таблица 17.26 Максимальный размер табличного пространства InnoDB

    Таблица 17.26 Максимальный размер табличного пространства InnoDB
    Размер страницы InnoDB Максимальный размер табличного пространства
    4 КБ 16 ТБ
    8 КБ 32 ТБ
    16 КБ 64 ТБ
    32 КБ 128 ТБ
    64 КБ 256 ТБ

    Максимальный размер табличного пространства также является максимальным размером таблицы.

  • Экземпляр InnoDB поддерживает до 2^32 (4294967296) табличных пространств, при этом небольшое количество из них зарезервировано для отката и временных таблиц.

  • Общедоступные табличные пространства поддерживают до 2^32 (4294967296) таблиц.

  • Путь к файлу табличного пространства, включая имя файла, не может превышать ограничение MAX_PATH в Windows. До Windows 10 предел MAX_PATH составлял 260 символов. Начиная с Windows 10, версии 1607, ограничения MAX_PATH на общие функции работы с файлами и каталогами Win32 были удалены, но вам необходимо включить новую работу.

  • Ограничения, связанные с одновременными транзакциями чтения и записи, см. в разделе 17.6.6, «Журналы отката».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/innodb-limits.html

Spec-Zone.ru

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