gpt4 book ai didi

mysql - 在 MySQL 中的大表(> 10.000.000 行)中的列上进行通配符搜索

转载 作者:行者123 更新时间:2023-11-29 01:09:38 25 4
gpt4 key购买 nike

在 MySql 中,您会使用哪些技术来搜索一个非常大的表的列中的内容?例如,假设您在数据库的一个表中存储了 10.000.000 封电子邮件,并且想要实现主题搜索,这将使我能够搜索电子邮件主题中出现的一个或多个单词。如果用户搜索“christmas santa”,您应该会找到一封主题为“圣诞老人今年圣诞节来访”和“圣诞节,圣诞老人会不会出现”的电子邮件。

我的想法是处理主题中的所有单词(去除所有数字、特殊符号、逗号等)并将每个单词保存在索引表中,其中我在单词列上有一个唯一索引。然后我会通过多对多关系表将其链接到电子邮件表。

有没有更好的方法在非常大的表上执行通配符搜索?

是否有原生支持此类搜索的数据库?

最佳答案

如果您使用 MyISAM 作为存储引擎,则可以使用 FULLTEXT 索引。然而,MySQL 总体上不太擅长文本搜索。

更好的选择是使用专用的文本索引解决方案,例如 LuceneSphinx .我个人推荐 Sphinx——它与 PHP 和 MySQL 有很好的集成,而且速度非常非常快(甚至可以用来加速普通查询——执行非常快的分组和排序)。

维基百科有一个很好的不同索引引擎列表 - here .

关于mysql - 在 MySQL 中的大表(> 10.000.000 行)中的列上进行通配符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/373017/

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