美文网首页
mysql 优化 %like% 查询

mysql 优化 %like% 查询

作者: Vialog | 来源:发表于2017-07-12 11:20 被阅读0次

    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% 查询

          本文链接:https://www.haomeiwen.com/subject/rffbhxtx.html