MYSQL 全文索引表现

MYSQL FULLTEXT Index Performances

我有多个字段的 Mysql table,我正在使用 api 在这些标签中搜索一个或多个词:

myTable(id, label1, label2, label3, label4, label5)

所以我在所有字段上创建了 1 FULLTEXT 索引(label1、label2、label3、label4、label5) 使用请求:

CREATE FULLTEXT INDEX search_index_mytable ON myTable(label1, label2, label3, label4, label5);

使用示例:我要查找单词:word1、word2、word3

-- example 1
SELECT id 
FROM myTable 
WHERE MATCH(label1, label2, label3, label4, label5 )
      AGAINST ('word1* word2* word3*' IN BOOLEAN MODE)

-- example 2
SELECT id 
FROM myTable 
WHERE MATCH(label1, label2, label3, label4, label5 ) AGAINST ('word1*' IN BOOLEAN MODE)
   OR MATCH(label1, label2, label3, label4, label5 ) AGAINST ('word2*' IN BOOLEAN MODE)
   OR MATCH(label1, label2, label3, label4, label5 ) AGAINST ('word3*' IN BOOLEAN MODE)

我的问题是:哪个请求示例最快?他们相等吗?

非常感谢

示例 1 更快;这是 FULLTEXT 之美的一部分。

您可能不需要单词末尾的 *。 “词干提取”无论如何都完成了。

您可能需要在每个单词前加一个 +。这取决于你想要“或”还是“与”逻辑。

当心“短”词和“停用词”。

请注意,您建立的索引将始终针对所有 5 列进行测试;如果您只需要针对一列进行测试,则需要另一个 FT 索引。