0

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

keyword
country
sort order

我使用 Sphinx 进行上述所有搜索。但是,当我在没有查询的情况下进行查询时keyword,仅在 MySQL 中使用普通查询countrysort order不是使用 Sphinx 会更好吗?

换句话说,是否应该只在keyword搜索时才使用 Sphinx?

查看整体性能和速度。

4

3 回答 3

3

不要听起来刻薄,但性能真的很重要吗?

如果您正在构建一个仅由组织内的少数用户使用的应用程序,那么您可能会忽略使用一种方法而不是另一种方法的性能优势,而是专注于代码的简单性。

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

PS在需要之前不要优化。全心全意地努力让代码远离你的代码。

于 2012-05-15T16:00:50.910 回答
2

基准!基准!基准!

即自己测试。确切的性能将取决于确切的数据,甚至可能取决于您的 sphinx 和 mysql 服务器的相对性能。

于 2012-05-12T22:00:18.007 回答
1

当通过文本字符串搜索时,Sphinx 将提供比 MySQL 更快的速度,而通过数字键搜索时,MySQL 可能会更快。

因此,假设“国家”和“排序顺序”都可以在 MySQL 中使用数字索引进行索引,最好只使用带有“关键字”的 Sphinx,而对于其他两个 - MySQL 普通查询。

但是,正如 barryhunter 所建议的那样,基准测试不会受到伤害;)

于 2012-05-15T10:55:57.437 回答