MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。在MySQL5.6以下,只有MyISAM表支持全文检索。在MySQL5.6以上Innodb引擎表也提供支持全文检索。
建表插入数据
建立测试表
CREATE TABLE `test
` (
`id
` int(11) NOT NULL AUTO_INCREMENT,
`content
` text,
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
添加全文索引
ALTER TABLE `test
`.`test
`
ADD FULLTEXT
INDEX (`content
`);
添加内容
添加10W的长篇文章
修改数据
随机修改一条数据的内容,把文章最后的“空气常新的美丽中国”改为“空气常新的美丽国家”
常规like与全文索引对比
常规like
explain select * from test
where content
like '%空气常新的美丽国家%'
关于explain的使用请查看:Mysql语句性能分析-EXPLAIN
全文索引 match(字段) against(‘要搜索的关键字’)
explain select * from test
where match(content
) against
('空气常新的美丽国家')