Optymalizacja zapytań MySQL LIKE '% string%' w innoDB

Posiadanie tego stołu:

<code>CREATE TABLE `example` (
`id` int(11) unsigned NOT NULL auto_increment,
`keywords` varchar(200) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB;
</code>

Chcielibyśmy zoptymalizować następujące zapytanie:

<code>SELECT id FROM example WHERE keywords LIKE '%whatever%'
</code>

Tabela jest InnoDB (więc nie ma na razie FULLTEXT), który byłby najlepszym indeksem używanym do optymalizacji takiego zapytania?

Próbowaliśmy prostego:

<code>ALTER TABLE `example` ADD INDEX `idxSearch` (`keywords`);
</code>

Ale zapytanie wyjaśniające pokazuje, że trzeba zeskanowaćcały stół jeśli zamiast tego nasze zapytania gdzie LIKE 'any%', ten indeks działa dobrze, ale poza tym nie ma żadnej wartości.

Czy mimo to zoptymalizować to dla innoDB?

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion