mysql 使用like %name%查询时,速度很慢,CPU占用高.
select * from persons where name like "%jack%"
新版的MySQL5.6.24上InnoDB引擎加入了全文索引,可以使用全文索引方式来优化.
创建全文索引(FullText index)
- 创建表的同时创建全文索引
CREATE TABLE article (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name VARCHAR(200),
title TEXT,
FULLTEXT(name, title)
) TYPE=MYISAM;
- 通过 alter table 的方式来添加
ALTER TABLE `student` ADD FULLTEXT INDEX ft_person_name (`name`) #ft_person_name是索引名,可以随便起
或者:
ALTER TABLE `student` ADD FULLTEXT ft_person_name (`name`)
- 直接通过create index的方式
CREATE FULLTEXT INDEX ft_person_name ON `person` (`name`)
也可以在创建索引的时候指定索引的长度:
CREATE FULLTEXT INDEX ft_person_name ON `person` (`name`(20))