mysql全文索引

今天 在公司 用慢查询看到 一些sql语句,慢的太不像话了,于是乎进行了些许优化,其中有一个like '%string%',用到了 全文索引,查了很多资料 ,终于搞定,测试查询效率 快了10倍,

1 首先 命令行 

 SHOW VARIABLES LIKE 'ft_min_word_len' 查看是否为  1,如果不是的话 在 my.ini /my.cnf 增加 'ft_min_word_len=1'。

ps:本人用的mac,然后修改这个值找配置文件怎么修改都不好使,折腾半天,终于找到了

一定要加在  mamp下的 file->edit template ->mysql.my.cnf 下的mysqld下,(加在最后面是没有用的)

2创建全文索引 

“ALTER TABLE `tableName` ADD FULLTEXT(`string`);”

3使用  

SELECT * FROM `tableName` WHERE MATCH(`string`) AGAINST('string' IN BOOLEAN MODE) 

Notice:  1:一定要加  “IN BOOLEAN MODE”(布尔全文搜索)  不然 如果数据重复超过50%会 出现无数据的情况。

            2: 全文索引的字段 一定要使用  ‘,’ 或者 空格 分隔,才能有效。

    3:全文索引不支持中文。

    4 mysql 好像是 5.6以前只有myisam 支持全文索引,5.6以后就全都支持了

 

posted @ 2018-03-16 10:02  ngx171  阅读(152)  评论(0)    收藏  举报