您的位置:首页 > 数据库 > MySQL

mysql全文索引理解

2017-05-05 00:00 239 查看
第一次在工作中使用全文索引,遇到了一些坑,研究了下,写下我的一些理解。

mysql5.6后InnoDB存储引擎已经支持全文索引。

1、首先创建一张表test2。

CREATE TABLE test2 (
id INT(11),
value2 TEXT
)

2、给test2的value2字段加上全文索引。

ALTER TABLE test2 ADD FULLTEXT(value2);



第一次给一张表加全文索引时,会给一个警告,InnoDB会创建一个列FTS_DOC_ID,后面再添加全文索引的时候,就不会再报警告了。

3、往test2表添加一些数据。



SELECT * FROM test2 WHERE MATCH(value2) AGAINST('1')

发现匹配不到任何数据,原因是mysql全文索引查询关键词最小长度默认限制为4。

注意:最小长度限制可进行修改,但是建议不要修改,因为长度太小会影响查询效率。

windows系统可以在my.ini配置文件中添加ft_min_word_len = 1(表示最小长度限制为1),保存后需要重启mysql。

用SHOW VARIABLES可以查看,我这里采用的还是默认的长度4。



4、修改test2中的数据。



SELECT * FROM test2 WHERE MATCH(value2) AGAINST('12345')

发现匹配不到任何数据,原因是“12345”超过了50%的条数,这里总共5条数据,“12345”占了3条,“1234”可以匹配出两条数据。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL 全文索引