今天 在公司 用慢查询看到 一些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: mysql 不支持中文。
4 mysql 好像是 5.6以前只有myisam 支持全文索引,5.6以后就全都支持了