Я получаю следующую ошибку при попытке добавить ПОЛНОТЕКСТОВЫЙ ИНДЕКС к Заголовку, Выпуску и Автору в моей базе данных MySQL:
Указанный ключ был слишком длинным; макс. длина ключа составляет 1 000 байтов
Вот столбцы:
`Title` varchar(255) NOT NULL,
`Edition` varchar(20) default NULL,
`Authors` varchar(255) default NULL,
Ни один из них не уникален.. Даже комбинация всех 3 не уникальна. Первичным ключом на базе данных является ISBN.
Причиной я добавляю этот ПОЛНОТЕКСТОВЫЙ ИНДЕКС, являются так люди, может искать книги с помощью ключевого слова, которое могло бы включать Заголовок, Выпуск или Автора.
MySQL имеет ограничение на то, сколько места выделяется для индексов - это 1000 байт для MyISAM, 767 байт для InnoDB .
Единственный способ обойти ограничение - определить ключи, которые индексируют часть столбца - это означает, что это все, что будет в индексе, ограничивая его значение:
CREATE INDEX index_name ON YOUR_TABLE(title(100), edition, authors(100));
Это проиндексирует первые 100 символов столбца заголовка , весь столбец издания и 100 знаков столбца авторов. Я считаю, что это соотношение 3: 1 для столбцов VARCHAR, поэтому VARCHAR (250) занимает 750 байт.