我在Rails中使用thinking_sphinx。据我所知,Sphinx用于全文搜索。假设我有这些疑问:
keyword
country
sort order
我使用Sphinx进行上述所有搜索。但是,当我在没有keyword
但仅仅country
和sort order
的情况下进行查询时,在MySQL中使用普通查询而不是使用Sphinx会更好吗?
换句话说,只有在搜索keyword
时才能使用Sphinx吗?
关注整体表现和速度。
答案 0 :(得分:3)
听起来不是很讽刺,但性能真的很重要吗?
如果您正在构建一个仅供组织内少数用户使用的应用程序,那么您可能会忽略使用一种方法而不是另一种方法的性能优势,而是将注意力集中在代码中的简单性上。
另一方面,如果您的应用程序被interwebz上的大量用户访问,而您真的需要专注于提高性能,那么您应该按照上面的@barryhunter的建议和基准测试来确定在特定情况下的最佳方法。
P.S。在您需要之前不要进行优化。全力以赴地将代码从代码中删除。
答案 1 :(得分:2)
基准!基准!基准!
是的,我自己测试一下。确切的性能将取决于确切的数据,甚至可能是你的狮身人面像和mysql服务器的相对性能。答案 2 :(得分:1)
当通过文本字符串搜索时,Sphinx将提供超过MySQL的杀手级速度,并且当使用数字键搜索时,MySQL可能会更快。
因此,假设可以使用MySQL中的数字索引对“country”和“sort order”进行索引,最好只将Sphinx用于“keyword”,而将其他两个用于MySQL正常查询。
然而,正如barryhunter建议的那样,基准测试不会受到影响;)