InnoDB in realtà consente solo 768 BYTES nell'indice. Inoltre, tieni presente che le stringhe con codifica UTF-8 occupano 3 byte per carattere, quindi in questo caso hai solo 768/3 caratteri con cui giocare nell'indice.
Una possibile soluzione è limitare la lunghezza dell'utilizzo del campo nell'indice. Tuttavia, poiché desideri anche un indice univoco, potrebbe non essere una soluzione accettabile per te. Utilizzare quanto segue per limitare la lunghezza dei campi utilizzati.
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))