gpt4 book ai didi

MySQL 搜索 FTS 与多查询

转载 作者:行者123 更新时间:2023-11-29 06:50:13 25 4
gpt4 key购买 nike

在一个项目中,模式是这样的:

id , key, value

keyvalue列是 varchar,表是 InnoDB .

用户可以根据键值对进行搜索……在 MySQL 中查询的最佳方式是什么?我能想到的选项是:

  • 对于每个 key => value形成查询并执行 inner join得到id符合所有条件。

  • 或者在后台,填充一个MyISAM table id, infoFull Text indexinfo和使用 like '%key:value%key2:value2%' 的单个查询.这样做的好处是,如果网站很受欢迎并且表格有十万行,我可以轻松地将代码移植到 Lucene,但现在是 MySQL。

最佳答案

您所说的模式称为关系划分

如果您有正确的索引,选项 #1(自连接)是一个更快的解决方案。

我在演示文稿中比较了关系除法的几个解决方案的性能 SQL Query Patterns, Optimized .即使针对具有数百万行的表,自联接解决方案也能在 0.005 秒内完成。

带有全文的选项 #2 无论如何都不正确,因为您不会将 LIKE 与全文搜索一起使用。您将使用 MATCH(info) AGAINST('...' IN BOOLEAN MODE)。我不确定您是否可以使用 key:value 格式的模式。 MySQL FTS 优先匹配单词。

关于MySQL 搜索 FTS 与多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com