Qual versão? O que
CHARACTER SET
? E outras questões. Antes da versão 5.5, havia CHARACTER SET utf8
, que precisa de até 3 bytes por caractere, mas não utf8mb4
, que precisa de até 4. Com 5,7 (10,2?), o problema foi 'resolvido'. Enquanto isso, um índice foi limitado a 767 bytes; não é 3072. Seu índice em um
VARCHAR(500)
precisa de 1500 ou 2000 bytes. Aqui está minha lista de 5 coisas que podem ser feitas:http://mysql.rjweb .org/doc.php/limits#767_limit_in_innodb_indexes
Você precisa escolher entre eles com base em qual falha você pode conviver.