Optimieren von MySQL LIKE '% string%' Abfragen in innoDB
Diesen Tisch haben:
<code>CREATE TABLE `example` ( `id` int(11) unsigned NOT NULL auto_increment, `keywords` varchar(200) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB; </code>
Wir möchten die folgende Abfrage optimieren:
<code>SELECT id FROM example WHERE keywords LIKE '%whatever%' </code>
Die Tabelle ist InnoDB (also noch kein FULLTEXT). Welcher Index ist am besten geeignet, um eine solche Abfrage zu optimieren?
Wir haben ein einfaches ausprobiert:
<code>ALTER TABLE `example` ADD INDEX `idxSearch` (`keywords`); </code>
Eine EXPLAIN-Abfrage zeigt jedoch, dass das gescannt werden mussganze Tabelle Wenn unsere Abfragen stattdessen LIKE 'whatever%' lauten, funktioniert dieser Index gut, hat aber ansonsten keinen Wert.
Gibt es überhaupt eine Möglichkeit, dies für innoDB zu optimieren?
Vielen Dank!