【发布时间】:2014-02-02 12:55:08
【问题描述】:
我正在开发一个“搜索引擎”式的网站。在测试过程中,该站点在传统 MySQL 数据库中搜索了 40,000 个条目以获取各种不同的标准,然后根据总体排名对每个条目进行排序和显示。这种级别的数据性能非常好,平均在 2-3 秒内返回结果。
充满信心,我将数据库中的条目从 40,000 增加到大约 325,000。现在,搜索数据库大约需要 4 分钟。单次搜索使用约 2GB 的 RAM!此外,我从服务器收到了一些警告消息:)
我觉得代码已经尽可能地优化了。如果我再努力一个月,我可能会获得 1% 的性能提升。所以我的问题是,对于超大型数据集/查询,最快的开源 MySQL 引擎是什么?
我读过有关 MemSQL 的文章,它看起来很棒,但它不是免费的(甚至接近于负担得起的)。我不知道确切的美元数字,但我听说 5,000 美元/许可证/服务器。
有什么想法、建议吗?目前,我使用 MyISAM。我愿意接受任何与 MySQL 兼容的替代方案。
我意识到在某个时候我需要更强大的硬件,但目前还没有解决方案。
【问题讨论】:
-
325,000 行并不是特别大。但是,您没有提供任何有用的信息来实际帮助提高性能。
-
我愿意提供任何有用的信息。你需要什么?
-
示例查询、表格架构、少量示例数据、警告消息是什么、表格上有哪些索引是一个好的开始
-
大多数情况下,数据库运行缓慢是因为设计不当。您的架构对数百万条记录很重要,因为它会影响文件空间、内存等。为要存储的数据选择正确的字段类型,设计适当的索引等。我使用 MySQL 开发的应用程序可以存储 10 到 1 亿条记录,所以它是并不总是只是移动到不同的服务器
-
我会在一分钟内用这些数据更新帖子。忍受我。
标签: mysql sql performance