14.23 Пределы InnoDB
В этом разделе описываются пределы для таблиц, индексов, табличных пространств и других аспектов хранилища данных InnoDB.
Таблица может содержать не более 1017 столбцов (увеличено в MySQL 5.6.9 с предыдущего ограничения в 1000). Виртуальные вычисляемые столбцы включены в это ограничение.
Таблица может содержать не более 64 …
-
Если
innodb_large_prefixвключено (по умолчанию), предел длины префикса ключа индекса составляет 3072 байта дляInnoDBтаблиц, использующих формат строк или . Еслиinnodb_large_prefixвыключено, предел длины префикса ключа индекса составляет 767 байтов для таблиц любого формата строк.innodb_large_prefixустарело; ожидается его удаление в будущих выпусках MySQL.innodb_large_prefixбыла введена в MySQL 5.5 для отключения больших префиксов ключей индекса для совместимости со старыми версиямиInnoDB, которые не поддерживают большие префиксы ключей индекса.Предел длины префикса ключа индекса составляет 767 байтов для
InnoDBтаблиц, использующих формат строк или . Например, вы можете столкнуться с этим ограничением с индексом длиной более 255 символов для столбцаTEXTилиVARCHAR, предположив кодировкуutf8mb3и максимальное значение 3 байта на символ.Попытка использовать длину префикса ключа индекса, превышающую это ограничение, приведет к ошибке. Для предотвращения таких ошибок в конфигурациях репликации избегайте включения
innodb_large_prefixна источнике, если его нельзя включить и на репликах.Если вы уменьшите размер страницы до 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_size16 КБ составляет примерно 8000 байт. Однако для размера страницыInnoDB64 КБ максимальный размер строки составляет примерно 16000 байт. СтолбцыLONGBLOBиLONGTEXTдолжны быть меньше 4 ГБ, а общий размер строки, включая столбцыBLOBиTEXT, должен быть меньше 4 ГБ.Если строка короче половины страницы, она хранится в ней локально. Если она превышает половину страницы, для переменных столбцов выбирается внешнее хранение вне страницы до тех пор, пока строка не поместится в половину страницы, как описано в Разделе 14.12.2, «Управление пространством файлов».
Хотя InnoDB поддерживает строки размером больше 65 535 байт во внутреннем формате, сам MySQL накладывает ограничение на размер строки в 65 535 байт для общего размера всех столбцов. См. Раздел 8.4.7, «Ограничения на количество столбцов таблицы и размер строки».
В некоторых старых операционных системах файлы должны быть меньше 2 ГБ. Это не ограничение InnoDB. Если вам требуется большое табличное пространство, настройте его, используя несколько меньших файлов данных, а не один большой, или распределите данные таблицы по файлам на таблицу и общим файлам данных табличного пространства.
Максимальный объединённый размер файлов журнала логов составляет 512 ГБ.
-
Минимальный размер табличного пространства немного больше 10 МБ. Максимальный размер табличного пространства зависит от размера страницы
InnoDB.Таблица 14.25 Максимальный размер табличного пространства InnoDB
Таблица 14.25 Максимальный размер табличного пространства InnoDB Размер страницы InnoDB Максимальный размер табличного пространства 4 КБ 16 ТБ 8 КБ 32 ТБ 16 КБ 64 ТБ 32 КБ 128 ТБ 64 КБ 256 ТБ Максимальный размер табличного пространства также является максимальным размером таблицы.
Файлы табличного пространства не могут превышать 4 ГБ на 32-битных системах Windows (Ошибка #80149).
Экземпляр InnoDB поддерживает до 2^32 (4294967296) табличных пространств, при этом небольшое количество этих табличных пространств зарезервировано для таблиц отката и временных таблиц.
Общедоступные табличные пространства поддерживают до 2^32 (4294967296) таблиц.
Путь к файлу табличного пространства, включая имя файла, не может превышать ограничение на длину пути в Windows. До Windows 10 предел длины пути составлял 260 символов. Начиная с Windows 10, версии 1607, ограничения на длину пути для общих функций Win32 для файлов и каталогов были удалены, но вам необходимо включить новое поведение.
Формат файла предполагает, что размер страницы не превышает 16 КБ и использует 14-битные указатели.
Ограничения, связанные с одновременными транзакциями чтения-записи, см. в Разделе 14.6.7, «Журналы отката».
© 2025 Oracle
Licensed under the GPLv2 License.