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!