InnoDB faktycznie dopuszcza tylko 768 BYTÓW w indeksie. Pamiętaj też, że ciągi zakodowane w UTF-8 zajmują 3 bajty na znak, więc w takim przypadku masz tylko 768 / 3 znaki do zabawy w indeksie.
Możliwym rozwiązaniem jest ograniczenie długości wykorzystania pola w indeksie. Ponieważ jednak potrzebujesz również unikalnego indeksu, może to nie być dla Ciebie akceptowalne rozwiązanie. Użyj poniższych wskazówek, aby ograniczyć długość używanych pól.
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))