【问题标题】:Will a FULLTEXT index on a join column fast the query in MySQL?连接列上的 FULLTEXT 索引会加快 MySQL 中的查询吗?
【发布时间】:2016-03-01 09:53:38
【问题描述】:

我是这个全文索引的新手,我知道全文用于索引文本或 varchar 列以进行快速搜索。

我还读到全文索引仅与 (MATCH...AGAINST) 合成器一起使用?这是真的吗?

我的问题是:如果我在一列上使用全文索引,它会加快查询速度吗?

查询是:

选择 * 从表 1 中 内连接表2 b ON a.text = b.text;

为两个表的列文本设置全文索引。

谢谢。

最好的问候,

【问题讨论】:

  • 您可以在具有 text 列的 InnoDb 表上定义全文索引。它可以加快对这些列中包含的数据的查询和 DML 操作,省略任何定义为停用词的单词。您可以在这里找到绩效评估:percona.com/blog/2013/07/31/…

标签: mysql join full-text-indexing


【解决方案1】:

关于使用全文索引的问题的第一部分在这里得到解答: http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

全文搜索使用 MATCH() ... AGAINST 语法进行。

第二部分是关于基于全文索引字段的两个表的内部连接。它可以通过添加到表 table1 和 table2 字段 texthash 来解决。有必要填充和维护这个哈希值(通过应用程序代码或 mysql 触发器)。 您可以为此字段使用通常的 btree 索引,您的 sql-query 将被修改为以下版本并快速执行:

SELECT * FROM table1 a INNER JOIN table2 b ON a.texthash = b.texthash;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 2013-08-28
    • 2013-07-27
    • 2018-08-13
    • 2012-02-07
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    相关资源
    最近更新 更多