首页 >数据库 >mysql教程 >MATCH AGAINST 或 LIKE:MySQL 中的多列关键字搜索哪个更好?

MATCH AGAINST 或 LIKE:MySQL 中的多列关键字搜索哪个更好?

Patricia Arquette
Patricia Arquette原创
2024-12-28 01:55:09829浏览

MATCH AGAINST or LIKE: Which is Better for Multi-Column Keyword Searches in MySQL?

在数据库搜索中选择 MATCH AGAINST 和 LIKE

在数据库查询中,人们面临着选择最佳查询进​​行搜索的困境基于多列中的特定关键字的行。这个问题比较了两种方法:

MATCH AGAINST

此查询使用全文索引来搜索包含关键字“foo”和“bar”的文档指定的列“foo_desc”和“bar_desc”。在 MySQL 5.6 及更高版本中,InnoDB 表支持 MATCH AGAINST。

LIKE

此查询连接两列中的值并使用 LIKE 执行在结果中搜索“foo”和“bar”的子字符串string.

性能注意事项

MATCH AGAINST 在 MyISAM 表上表现出卓越的性能,利用全文索引来高效搜索关键字。相比之下,LIKE 执行全表扫描,在每一行中搜索关键字,这对于大型数据集来说可能非常耗时。

LIKE 的局限性

仅当直接应用于列(不是函数结果)、搜索模式与列的开头匹配并且该列已建立索引时,LIKE 才有效。否则,它默认为全表扫描,对于大型数据集来说变得不切实际。

MATCH AGAINST的缺点

MySQL 中 MATCH AGAINST 的一个限制是它仅匹配整个单词。因此,搜索“bla”不会匹配包含“blah”的列,但搜索“bla*”会找到它。

首选方法

基于性能考虑和LIKE的局限性,MATCH AGAINST是在大数据集中搜索多列关键词的首选。它利用全文索引的效率来提供快速、准确的结果。

以上是MATCH AGAINST 或 LIKE:MySQL 中的多列关键字搜索哪个更好?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn