mysql 优化 %like% 查询

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))

你可能感兴趣的:(mysql 优化 %like% 查询)