InnoDB фактически позволяет только 768 байт в индексе. Кроме того, обратите внимание, что строки в кодировке UTF-8 занимают 3 байта на символ, поэтому в этом случае у вас есть только 768/3 символа для воспроизведения в индексе.
Возможным решением является ограничение длины использования поля в индексе. Однако, так как вам также нужен уникальный индекс, это может оказаться неприемлемым решением для вас. Используйте следующее, чтобы ограничить длину используемых полей.
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))