2009-08-20 48 views
0

如何处理之类的查询:MySQL全文索引的性能解决方案

select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50 

如果结果与(“someA”)&比赛(场2)对(“someB”)都是巨大的返回的条件匹配(字段1) ,整个查询将非常非常慢。

这是一个解决方案吗?

回答

0

也许Sphinx会为您有效地解决这个问题。狮身人面像提供强大的全文搜索功能。我不确定这是否正是你想要做的,但它听起来很接近。

1

您可以为两列field1field2创建另一个FULLTEXT索引。然后,在一次搜索都搜索词用:

MATCH(field1, field2) AGAINST ('+someA +someB') IN BOOLEAN MODE 

当然,这可以找到行,其中field1同时包含检索词,并field2既不含。我不确定您的应用的具体要求。