用于极大查询的最快MySQL引擎

时间:2014-02-02 04:44:45

标签: mysql sql performance

我有一个“搜索引擎” - 我正在研究的网站。在测试期间,该站点搜索了传统MySQL数据库中的40,000个条目,用于各种不同的标准,然后根据总体排名对每个条目进行排序和显示。使用此级别的数据,性能非常好,平均返回结果大约2-3秒。

感到自信,我将数据库中的条目从40,000增加到大约325,000。现在,搜索数据库大约需要4分钟。单个搜索使用~2GB的RAM!另外,我从服务器收到一些警告信息:)

我觉得好像代码是尽可能优化的。如果我再工作一个月,我的表现可能会提高1%。所以我的问题是,用于极大数据集/查询的最快的开源MySQL引擎是什么?

我读过MemSQL,它看起来很棒,除了它不是免费的(甚至接近负担得起)。我不知道确切的美元数字,但我听说$ 5,000 / license / server。

有什么想法,建议吗?目前,我使用MyISAM。我对任何与MySQL兼容的替代方案持开放态度。

我意识到在某个时刻我需要更强大的硬件,但此时解决方案不在卡片中。

1 个答案:

答案 0 :(得分:0)

数据库不是搜索引擎。

试图把它哄骗成一个就是在路上惹麻烦;特别是考虑到数据库几乎总是在做双重任务。因此,除了处理原子性和ACID合规性,检查一致性和管理事务之外,您现在也要求它也是一个搜索引擎。

您可以轻松解决您现在遇到的问题(可能是添加索引和调整内存使用情况; EXPLAIN statement是您的朋友),因为您的数据集很小但很快就会遇到问题问题。

有一个原因是搜索引擎不是建立在数据库之上的。

您可以选择多种选择。流行的是solr,因为它具有纯粹的搜索和索引功能,elasticsearch更像是一个大型分布式查询的平台。

在我看来,最容易理解的是solr,它允许您创建“Google”样式搜索 - 即搜索文档,创建索引,突出显示匹配。它可以轻松地与数据库集成。试试这个5 minute tutorial,了解它的工作原理。它是一个开源的Apache项目。