【发布时间】:2012-05-08 09:57:53
【问题描述】:
有这张桌子:
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 进行优化的方法?
谢谢!
【问题讨论】:
-
我也推荐一些 mysql 性能调整,mysqltuner.pl 或 tuning-primer.sh
标签: mysql sql indexing query-optimization