2009-08-20 54 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既不含。我不確定您的應用的具體要求。