版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/89715970
1 并非所有的引擎都支持全文本搜索
两个最常用的数据局引擎 MyISAM
和 InnoDB
MyISAM
,支持全文本搜索;InnoDB
,不支持;
1.1 通配符和正则的限制
- 性能,通配符和正则表达式匹配通常要求MySQL尝试匹配表中所有行(而且这些搜索极少使用表索引)。因此,由于被搜索行数不断的增加,这些搜索可能非常耗时;
- 明确控制,使用通配符和正则很难明确控制匹配什么和不匹配什么。例如,指定一个词必须匹配,一个词必须不匹配;
- 智能化的结果,例如,一个特殊词的搜索将会返回包含该词的所有行,而不区分包含单个匹配的行和包含多个匹配的行(按照可能是更好的匹配来排列)。
2 使用全文本搜索
- 为了进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断地重新索引。在对表列进行适当设计后,MySQL会自动进行所有的索引和重新索引。
- 在索引之后,
select
可与Match()
和Against()
一起使用以实际执行搜索;