Изисква повече от тези две настройки...
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=ON;
SET GLOBAL innodb_large_prefix=1;
logout & login (to get the global values);
ALTER TABLE tbl ROW_FORMAT=DYNAMIC; -- or COMPRESSED
Може би всичко, от което се нуждаете, е да добавите ROW_FORMAT=...
към вашия CREATE TABLE
.
Тези инструкции са необходими за 5.6.3 до 5.7.7. Започвайки с 5.7.7, системата работи по подразбиране правилно, за да обработва по-големи полета.
Като алтернатива можете да използвате индекс с префикс:
INDEX(column(191))
(Но индексирането на префикса е неправилно по много начини.)
„Ако сървърът по-късно създаде по-висок формат на таблицата, innodb_file_format_max се задава на тази стойност“ означава, че тази настройка не е проблем.