Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL VARCHAR(255) UTF8 ist zu lang für den Schlüssel, aber die maximale Länge beträgt 1000 Bytes

Wenn Sie utf8mb4 verwenden und eindeutige Indizes für varchar-Spalten mit einer Länge von mehr als 191 Zeichen haben, müssen Sie innodb_large_prefix aktivieren, um größere Spalten in Indizes zuzulassen, da utf8mb4 mehr Speicherplatz benötigt als utf8 oder latin1 . Fügen Sie Folgendes zu Ihrer my.cnf-Datei hinzu.

[mysqld]
innodb_file_format=barracuda
innodb_file_per_table=1
innodb_large_prefix=1
init_connect='SET collation_connection = utf8mb4_unicode_ci; SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

Weitere Informationen über das Warum und die Zukunft in der MySQL 5.7-Dokumentation :

Zusammenfassend ist das Limit nur für die Kompatibilität da und wird in zukünftigen Versionen erhöht.