Каква версия? Какъв CHARACTER SET
? И други въпроси. Преди версия 5.5 имаше CHARACTER SET utf8
, който се нуждае от до 3 байта на знак, но не и utf8mb4
, което се нуждае от до 4. С 5.7 (10.2?) проблемът беше „решен“. Междувременно индексът беше ограничен до 767 байта; не е 3072.
Вашият индекс на VARCHAR(500)
се нуждае от 1500 или 2000 байта.
Ето моя списък с 5 неща, които могат да се направят:http://mysql.rjweb .org/doc.php/limits#767_limit_in_innodb_indexes
Трябва да изберете измежду тях въз основа на кой недостатък можете да живеете.