Оптимизация MySQL LIKE & #39;%string%& #39; запросы в innoDB

Имея эту таблицу:

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

Мы хотели бы оптимизировать следующий запрос:

SELECT id FROM example WHERE keywords LIKE '%whatever%'

Таблица InnoDB, (поэтому пока нет FULLTEXT ), что было бы лучше индекс использовать для оптимизации такого запроса?

Мы пробовали простой:

ALTER TABLE `example` ADD INDEX `idxSearch` (`keywords`);

Но запрос на объяснение показывает, что нужно сканировать всю таблицу если вместо этого наши запросы содержат LIKE 'whatever%', этот индекс работает хорошо, но в остальном не имеет значения.

Можно ли как-то оптимизировать это для innoDB?

Спасибо!

18
задан jmserra 31 October 2016 в 13:03
поделиться