首页 >数据库 >mysql教程 >MATCH AGAINST 或 LIKE:哪个查询优化我的全文搜索?

MATCH AGAINST 或 LIKE:哪个查询优化我的全文搜索?

Patricia Arquette
Patricia Arquette原创
2024-12-28 10:22:10647浏览

MATCH AGAINST or LIKE: Which Query Optimizes My Full-Text Search?

选择全文搜索的最佳查询

在数据库中搜索包含分散在多列中的特定关键字的行时,会出现两个主要选项:MATCH AGAINST 和 LIKE 。每种方法都有其优点和缺点,如下所述。

MATCH AGAINST

MATCH AGAINST 在适当的列上利用全文索引,在表上拥有卓越的性能MyISAM 存储引擎。这允许对指定列中的多个关键字进行高效匹配。

LIKE

虽然比 MATCH AGAINST 更通用,但 LIKE 搜索需要通过串联和单独评估每一行比较。这种方法会导致显着的性能损失,特别是对于大型表。此外,LIKE 可能会遇到部分关键字匹配的问题,例如 MATCH AGAINST 时“xxfoo”不匹配。

首选

对于 MyISAM 表, MATCH AGAINST 是涉及跨多个关键字的全文搜索的首选

对于 InnoDB 表,MySQL 5.6 及更高版本提供了对 Match Against 的支持,使其成为一个可行的选项。

考虑使用第三方搜索Engine

如果性能是一个关键因素,而底层数据库系统没有提供令人满意的解决方案,可以考虑集成一个专为全文索引和搜索而设计的第三方搜索引擎。

以上是MATCH AGAINST 或 LIKE:哪个查询优化我的全文搜索?的详细内容。更多信息请关注PHP中文网其他相关文章!

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