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!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage