Vilken version? Vad CHARACTER SET
? Och andra frågor. Före version 5.5 fanns det CHARACTER SET utf8
, som behöver upp till 3 byte per tecken, men inte utf8mb4
, som behöver upp till 4. Med 5.7 (10.2?) var problemet "löst". Under tiden hade ett index begränsats till 767 byte; inte det är 3072.
Ditt index på en VARCHAR(500)
behöver 1500 eller 2000 byte.
Här är min lista med 5 saker som kan göras:http://mysql.rjweb .org/doc.php/limits#767_limit_in_innodb_indexes
Du måste välja bland dem baserat på vilken brist du kan leva med.