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('空气常新的美丽国家')