Mysql 在两个字段上进行全文搜索比在一个字段上进行全文搜索快

Mysql 在两个字段上进行全文搜索比在一个字段上进行全文搜索快,mysql,sql,full-text-search,Mysql,Sql,Full Text Search,我的数据库表中有两个字段,带有全文索引:一个字段的平均内容约为60个字符,另一个字段的内容约为400个字符。我在这张表上进行全文搜索,如下所示: ... MATCH (table.field1, table.field2) AGAINST ("some string") ... 这大约需要8秒钟 ... MATCH (table.field1) AGAINST ("some string") ... ... MATCH (table.field2) AGAINST ("some string

我的数据库表中有两个字段,带有全文索引:一个字段的平均内容约为60个字符,另一个字段的内容约为400个字符。我在这张表上进行全文搜索,如下所示:

... MATCH (table.field1, table.field2) AGAINST ("some string") ...
这大约需要8秒钟

... MATCH (table.field1) AGAINST ("some string") ...
... MATCH (table.field2) AGAINST ("some string") ...
这大约需要18秒

... MATCH (table.field1) AGAINST ("some string") ...
... MATCH (table.field2) AGAINST ("some string") ...
这大约需要22秒



让我印象深刻的是,当我搜索更多字段时,查询速度更快!我又检查了好几次,但都是这样。这怎么可能?添加虚拟数据以将另一个字段添加到搜索中并使其更快是一个好主意吗?

两个字段可能都有一个全文索引。这使得单字段查询速度变慢,因为它无法使用该索引。

您是如何设置索引的?在哪些列上设置了索引?您可以在phpMyAdmin(假设您使用它)中的“Structure”下看到它,我指的是索引,而不是列类型;-)。单击“结构”,向下滚动至“索引”。你看到了什么?谢谢,两个独立的全文索引?还是一个包含两列的全文索引?我认为最后一个,这使得单个字段变慢,因为它不能使用那个索引。并对快速和慢速查询进行解释: