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ć:http://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ć.