【发布时间】:2013-08-12 13:54:04
【问题描述】:
我有一个包含 5M 行的大型数据集。数据集中的一个字段是“article_title”,我想实时搜索我在我的网站上构建的自动完成功能。
我一直在尝试将 MySQL 和 MongoDB 作为潜在的数据库解决方案。当使用索引时,两者都表现良好,例如'something%',但我需要匹配标题within一个字符串,如'%something%'。
MySQL 和 MongoDB 都需要 0.01 秒,使用前向搜索的索引,大约 6 秒的全字符串搜索。
我意识到需要扫描整个数据库以进行字符串中的字符串类型搜索,那么解决此问题的常用方法是什么? Solr 和 Sphinx 对于这个问题似乎有点过头了,所以我尽量避免使用它们。
如果我有一个具有 2 GB RAM 和 40GB SSD 的盒子(这是我目前能负担得起的),我能否获得亚秒级的响应时间?提前致谢。
--
更新:我尝试了全文索引,虽然结果非常快,但它并不能真正满足字符串中的字符串搜索(“presiden”与“president”不匹配)。我正在寻找将字符串中的字符串与 5M 行数据集匹配的方法。
【问题讨论】:
-
提供有关 MySQL(版本、引擎、结构、您使用的查询)和 MongoDB(cfg、版本、客户端)的更多信息
-
MySQL 5.1.7,Mongod 2.4.5。 MySQL 表是 MyISAM,因为它是专门读取的,我只是在寻找性能。
-
另见stackoverflow.com/questions/17973889/… 应该可以用于标题,但不适用于正文内容
标签: mysql mongodb search optimization autocomplete