InnoDB erlaubt tatsächlich nur 768 BYTE im Index. Beachten Sie auch, dass UTF-8-codierte Zeichenfolgen 3 Bytes pro Zeichen beanspruchen, sodass Sie in diesem Fall nur 768 / 3 Zeichen im Index haben, mit denen Sie spielen können.
Eine mögliche Lösung besteht darin, die Länge der Feldverwendung im Index zu begrenzen. Da Sie jedoch auch einen eindeutigen Index wünschen, ist dies möglicherweise keine akzeptable Lösung für Sie. Verwenden Sie Folgendes, um die Länge der verwendeten Felder zu begrenzen.
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))