【问题标题】:Use sphinx vs MySQL on no text search query在无文本搜索查询中使用 sphinx vs MySQL
【发布时间】:2012-11-20 07:57:53
【问题描述】:

我有这个疑问:

假设我有一个大表与一个较小的用户表有关系。

这个想法是在那个非常大的表中搜索大于给定日期的日期并按分数排序(例如,大整数),并同时获取相关的用户信息。 此查询的结果可能每 10 分钟左右更改一次。

所以,没有文本搜索,但我有一个非常大的表。我应该使用 sphinx(或其他搜索引擎)还是只使用一些 MySQL 索引?

如果我使用狮身人面像,肯定能得到非常快的结果;但也许刷新索引,即使使用增量索引,对 MySQL 索引也没有太大影响。同时,表中的变化不一定是新的插入,而是更新;而且我已经读过实时索引和增量索引会产生问题。

也许使用 MySQL 索引会更好,并帮助进行某种缓存以避免不必要的查询。

【问题讨论】:

    标签: mysql sphinx


    【解决方案1】:

    只需使用 MySQL,您的工作绝对不需要 Sphinx。

    【讨论】:

    • 一般来说,如果需要文本搜索,你是否只推荐Sphinx?
    • 是的,这就是它的用途。它不是用于数据检索本身(尽管它可以以这种方式被滥用)
    • 基本上,sphinx 对于普通检索“工作得很好”的唯一原因——即所谓的“全表扫描”是 sphinx——设计——将所有属性数据保存在内存中。因此查询非常快,因为它只访问内存 - 没有磁盘。如果可以说服 mysql 将整个数据库保存在内存中,将会得到可比较的结果。 (虽然 sphinx 在排序结果方面确实比 mysql 做得好)
    • 我不同意 Sphinx 仅用于全文搜索。查看这篇关于如何使用 sphinx 进行非全文搜索的文章:kovyrin.net/2008/05/19/using-sphinx-for-non-fulltext-queries
    • 那么,即使在讨论具有数百万行的表时,MySQL 也能很好地解决这个问题?
    猜你喜欢
    • 2015-02-24
    • 1970-01-01
    • 2013-07-21
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多