Mysql Innodb存储引擎使用fulltext索引的问题
Mysql在5.6版本以前 只有MyISAM支持fulltext全文索引
mysql 5.6以后innodb 引擎可以加fulltext 索引了,也可以加在varchar类型的字段上,在使用过程中遇到的两个问题:
1. like ‘%xx%’ 是不会使用全文索引的,需要使用 match against 进行查询,例如:
1 | SELECT * FROM table1 WHERE MATCH(f1) against('xxxx') --约等于 select * from table1 where f1 like '%xx%' |
2. 全文索引查询一直返回空的问题,最后发现如果关键字大约四个字符就有结果,原来是因为MySQL全文索引是基于词的,所以就要有一个限制来限制最小的词的字符数,设想极端情况下 你查询一个“的”字岂不是返回一片无意义的查询结果,如果想要去掉这个四个字符或者调整这个限制 ,可以修改ft_min_word_len的变量。