Ruby on rails 何时使用sphinx搜索,何时使用普通查询?

Ruby on rails 何时使用sphinx搜索,何时使用普通查询?,ruby-on-rails,ruby-on-rails-3,sphinx,thinking-sphinx,Ruby On Rails,Ruby On Rails 3,Sphinx,Thinking Sphinx,我在Rails中使用thinking_sphinx。据我所知,Sphinx用于全文搜索。假设我有这些疑问: keyword country sort order 我使用狮身人面像进行上述所有搜索。但是,当我查询时没有关键字,而只查询国家和排序顺序时,在MySQL中使用普通查询是否比使用Sphinx更好 换句话说,Sphinx是否应该仅在搜索关键字时使用 查看整体性能和速度。基准测试!基准!基准 你自己测试一下。具体的性能将根据具体的数据而有所不同,甚至可能取决于sphinx和mysql服务器的

我在Rails中使用thinking_sphinx。据我所知,Sphinx用于全文搜索。假设我有这些疑问:

keyword
country
sort order
我使用狮身人面像进行上述所有搜索。但是,当我查询时没有
关键字
,而只查询
国家
排序顺序
时,在MySQL中使用普通查询是否比使用Sphinx更好

换句话说,Sphinx是否应该仅在搜索
关键字时使用


查看整体性能和速度。

基准测试!基准!基准


你自己测试一下。具体的性能将根据具体的数据而有所不同,甚至可能取决于sphinx和mysql服务器的相对性能

基准!基准!基准


你自己测试一下。具体的性能将根据具体的数据而有所不同,甚至可能取决于sphinx和mysql服务器的相对性能

Sphinx在使用文本字符串搜索时比MySQL的速度快得多,而MySQL在使用数字键搜索时可能会更快

因此,假设“country”和“sort order”都可以在MySQL中使用数字索引进行索引,那么最好只使用带有“keyword”的Sphinx,而对于其他两个MySQL普通查询则使用Sphinx


然而,正如巴里亨特所说,基准测试不会有什么坏处;)

Sphinx在使用文本字符串搜索时比MySQL的速度快得多,而MySQL在使用数字键搜索时可能会更快

因此,假设“country”和“sort order”都可以在MySQL中使用数字索引进行索引,那么最好只使用带有“keyword”的Sphinx,而对于其他两个MySQL普通查询则使用Sphinx


然而,正如巴里亨特所说,基准测试不会有什么坏处;)

听起来不刺耳,但性能真的重要吗

如果您正在构建的应用程序只供组织内的少数用户使用,那么您可能会忽略使用一种方法比使用另一种方法的性能优势,而将重点放在代码的简单性上

另一方面,如果您的应用程序在interwebz上被大量用户访问,并且您确实需要关注性能,那么您应该遵循上面@barryhunter的建议并进行基准测试,以确定在给定情况下的最佳方法


注意,在需要优化之前不要进行优化。全力以赴将代码排除在代码之外。

不要听起来很刺耳,但性能真的很重要吗

如果您正在构建的应用程序只供组织内的少数用户使用,那么您可能会忽略使用一种方法比使用另一种方法的性能优势,而将重点放在代码的简单性上

另一方面,如果您的应用程序在interwebz上被大量用户访问,并且您确实需要关注性能,那么您应该遵循上面@barryhunter的建议并进行基准测试,以确定在给定情况下的最佳方法

注意,在需要优化之前不要进行优化。全力以赴将代码排除在代码之外