MySQL必知必会学习笔记(9)—— 全文本搜索

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/89715970

1 并非所有的引擎都支持全文本搜索

两个最常用的数据局引擎 MyISAMInnoDB

  • MyISAM,支持全文本搜索;
  • InnoDB,不支持;

1.1 通配符和正则的限制

  • 性能,通配符和正则表达式匹配通常要求MySQL尝试匹配表中所有行(而且这些搜索极少使用表索引)。因此,由于被搜索行数不断的增加,这些搜索可能非常耗时;
  • 明确控制,使用通配符和正则很难明确控制匹配什么和不匹配什么。例如,指定一个词必须匹配,一个词必须不匹配;
  • 智能化的结果,例如,一个特殊词的搜索将会返回包含该词的所有行,而不区分包含单个匹配的行和包含多个匹配的行(按照可能是更好的匹配来排列)。

2 使用全文本搜索

  • 为了进行全文本搜索,必须索引被搜索的列,而且要随着数据的改变不断地重新索引。在对表列进行适当设计后,MySQL会自动进行所有的索引和重新索引。
  • 在索引之后,select 可与 Match()Against() 一起使用以实际执行搜索;

猜你喜欢

转载自blog.csdn.net/u012292754/article/details/89715970