为什么 mysql 全文搜索不是预期的 运行?

Why mysql fulltext search not run as expected?

我有一个 table 有 700, 000 行。名为 'data' 的一列是文本类型。我在这个列上添加了全文索引,以提高我的查询速度。

这里有两个查询,第二个不是预期的return。

您可以看到第一个查询 return 一个结果是我指定的关键字。 耗时2秒

我认为第二个查询应该 运行 更快,因为我提供了更多的过滤条件。但是用了大概一分钟。

条件多了应该可以缩小数据集搜索,为什么会慢?

MYSQL 版本是8.0.16 引擎是InnoDB。对不起马赛克

Giving more conditions should narrow down the data set to search, why it slower?

FULLTEXT 将搜索每个必需的字符串,获取行号列表(或等效内容)。

对于多个必需的字符串,它将获取多个列表并将它们“AND”在一起。

另外,当有两个字符串(“26228”和“31500733”一起被引号)时,需要验证它们的邻接关系。 可能 是慢的部分。

改为考虑这个

MATCH AGAINST(+uf8... +26228 +31500733 IN BOOLEAN MODE)

这不会测试邻接关系,但这可能对最终结果无关紧要。 (另请注意,我跳过了太短的“i”。)