Jaka wersja? Jaki CHARACTER SET ? I inne kwestie. Przed wersją 5.5 istniał CHARACTER SET utf8 , który wymaga do 3 bajtów na znak, ale nie utf8mb4 , co wymaga do 4. Przy 5,7 (10,2?) problem został „rozwiązany”. Tymczasem indeks został ograniczony do 767 bajtów; nie jest to 3072.
Twój indeks na VARCHAR(500) potrzebuje 1500 lub 2000 bajtów.
Oto moja lista 5 rzeczy, które można zrobić:https://mysql.rjweb .org/doc.php/limits#767_limit_in_innodb_indexes
Musisz wybierać spośród nich na podstawie tego, z jaką wadą możesz żyć.