このテーブルを持っている:
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`);
しかし、explainクエリは、クエリが「whatever%」の代わりに「whatever%」である場合、テーブル全体をスキャンする必要があることを示しています。このインデックスは良好に機能しますが、それ以外の場合は値がありません。
これをinnoDB用に最適化する方法はありますか?
ありがとう!