Nó yêu cầu nhiều hơn chỉ hai cài đặt đó ...
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
Có lẽ tất cả những gì bạn cần là thêm ROW_FORMAT=...
vào CREATE TABLE
của bạn .
Các hướng dẫn này là cần thiết cho 5.6.3 đến 5.7.7. Bắt đầu với 5.7.7, hệ thống mặc định chính xác để xử lý các trường lớn hơn.
Ngoài ra, bạn có thể sử dụng chỉ mục "tiền tố":
INDEX(column(191))
(Nhưng lập chỉ mục tiền tố có nhiều sai sót.)
"Nếu sau này máy chủ tạo định dạng bảng cao hơn, thì innodb_file_format_max được đặt thành giá trị đó" ngụ ý rằng cài đặt đó không phải là vấn đề.