想象一下,您有一个用 Django 和 Python 2.65 编写的 Web 应用程序,而 MySQL 5.1 是您选择的数据库。
现在,假设您需要扩展您的应用程序以处理搜索成千上万的文档,并且可能有成千上万的用户将使用它。
现实:在上述情况下,带有 PySolr 和 Solr 1.4.0 的 Haystack 1.0 被证明是缓慢的。MyISAM 是一个更可行的替代方案,还是我应该花更多时间以“更智能”的方式使用 Solr 处理我当前的配置?
建议?尖端?
感谢您的任何帮助!米肖
想象一下,您有一个用 Django 和 Python 2.65 编写的 Web 应用程序,而 MySQL 5.1 是您选择的数据库。
现在,假设您需要扩展您的应用程序以处理搜索成千上万的文档,并且可能有成千上万的用户将使用它。
现实:在上述情况下,带有 PySolr 和 Solr 1.4.0 的 Haystack 1.0 被证明是缓慢的。MyISAM 是一个更可行的替代方案,还是我应该花更多时间以“更智能”的方式使用 Solr 处理我当前的配置?
建议?尖端?
感谢您的任何帮助!米肖
我对 Haystack 或 PySolr 没有任何专业知识,但仅仅看一下 Solr 就让我认为 MySQL 可能是一个更好的选择。我知道如果设置正确,MySQL 可以扩展到非常大的应用程序。
Apache Solr 仅在 Tomcat 上。Tomcat 可能会占用大量资源并且运行缓慢。MySQL 从编译的二进制文件运行。这应该会提供一点推动力。您运行它的服务器也会产生很大的不同。我想说,如果你有能力继续尝试设置 MySQL 系统,看看你是否有任何不同。
我假设您正在谈论比较 Solr 与MySQL 全文搜索,否则它将是比较苹果和橘子。
我不了解 Haystack 或 PySolr,但 Solr 本身在处理 100000 份数量级的大量用户文档时应该没有问题。不过,仅这两个参数不足以说明问题。例如,更新频率、实际请求频率、文档大小、页面大小、排序、分面等。
Solr 易于纵向和横向扩展,并且是 Apache 许可的,而MySQL 的横向扩展解决方案是 GPL+商业许可的。
我不同意 Badger 关于 Tomcat 的回答,它是一个非常完善、经过验证、稳定的服务器,已经存在了 10 多年,Java 性能神话必须一劳永逸地消除。
底线:您很可能需要优化 Solr 实例(客户端查询和服务器端索引和性能设置)。Solr 为一些最大的网站提供支持,因此它很可能也可以处理您的负载。