当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在MySQL中的大表(>10.000.000行)中的列上进行通配符搜索》经验,为你挑选了1个好方法。

您将使用哪些技术在MySql中的一个非常大的表上的列中搜索内容?例如,假设您在数据库的表中存储了10.000.000封电子邮件,并且希望实现主题搜索,这将使我能够搜索电子邮件主题中存在的一个或多个单词.如果用户搜索"圣诞老人圣诞节",您应该找到一封电子邮件,其中包括"圣诞老人拜访我们这个圣诞节"和"圣诞节,圣诞老人会永远展示".

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

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

是否存在本机支持此类搜索的数据库?



1> Eran Galperi..:

如果您使用MyISAM作为存储引擎,则可以使用FULLTEXT索引.但是,MySQL一般用文本搜索不是很好.

一个更好的选择是采用专用的文本索引解决方案,如Lucene或Sphinx.我个人推荐Sphinx - 它与PHP和MySQL有很好的集成,非常非常快(可以用来加速普通查询 - 执行非常快速的分组和排序).

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

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有