MySQL MATCH 在列选择或在 where 子句中。有区别吗?

问题描述 投票:0回答:1

这两个 MySQL 语句有什么区别(如果有的话)?如果我在

MATCH
子句中使用
WHERE
会有性能差异吗?还是没有必要?

SELECT `column`, MATCH(`column`) AGAINST ("searchterm") AS `rank` 
FROM `table` 
ORDER BY `rank` DESC;

并且

SELECT `column`, MATCH(`column`) AGAINST ("searchterm") AS `rank` 
FROM `table` 
WHERE MATCH(`column`) AGAINST ('searchterm') 
ORDER BY `rank` DESC;
mysql match full-text-search
1个回答
0
投票

第一个示例运行表扫描。这必须检查表中的每一行,即使是那些与 AGAINST() 谓词中的模式不匹配的行。

第二个示例仅检查匹配的行(我假设您已经定义了全文索引)。

性能主要与检查的行成正比,因此第二个示例应该要好得多。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.