不确定是否将sphinx用于这些查询



当您比较多列而不是进行全文搜索时,像Sphinx这样的引擎能在多大程度上帮助您找到一小组行。

举个例子,我们为每个客户端都有一个数据库。其中许多具有1000万以上的用户行。问题是,这些行中的大多数代表一次性登录,而不是真正的用户(插入100个不同的原因,说明这很糟糕,但这些都是由人而不是我做出的决定(。A";真实的";通过对3个不同的列进行字符串比较,可以将用户与登录名或其他类型的用户区分开来。(早些时候我排除了全文,因为这些值很小——通常在10-15个字符的范围内,但永远不会超过32(。

对于只需要一种类型用户的查询,像Sphinx这样的工具是一个不错的选择吗?

斯芬克斯可能有助于实现这一点,但这只是因为它提供了一种实现某种";物化视图";。

ie可以进行一个大型复杂的查询,将您的"比较"组合为复杂数据库查询中的JOIN。创建所有数据的聚合(即使是这些单个登录(。一个可能需要很长时间才能执行的查询。"indexer"工具,作为一些函数,运行大量小查询来组成大索引。

我仍然在数据库中做繁重的工作,只是把结果保存在狮身人面像索引中。Sphinx只是在组成一个单独的索引(或视图(方面有所帮助

然后可以在sphinx索引上执行任意查询,例如只列出"真实"用户。Ie可以对存储在狮身人面像中的"中间"数据进行"快速"查询。

但这样一来,sphinx并没有提供太多优势,只是直接在mysql中进行物化视图。ie可以直接将中间数据保存在mysql中,并在那里运行查询。

并没有真正用mysql做任何不能做的事情,只是可能用sphinx做得"更容易"。

最新更新