如何處理之類的查詢:MySQL全文索引的性能解決方案
select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50
如果結果與(「someA」)&比賽(場2)對(「someB」)都是巨大的返回的條件匹配(字段1) ,整個查詢將非常非常慢。
這是一個解決方案嗎?
如何處理之類的查詢:MySQL全文索引的性能解決方案
select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50
如果結果與(「someA」)&比賽(場2)對(「someB」)都是巨大的返回的條件匹配(字段1) ,整個查詢將非常非常慢。
這是一個解決方案嗎?
也許Sphinx會爲您有效地解決這個問題。獅身人面像提供強大的全文搜索功能。我不確定這是否正是你想要做的,但它聽起來很接近。
您可以爲兩列field1
和field2
創建另一個FULLTEXT
索引。然後,在一次搜索都搜索詞用:
MATCH(field1, field2) AGAINST ('+someA +someB') IN BOOLEAN MODE
當然,這可以找到行,其中field1
同時包含檢索詞,並field2
既不含。我不確定您的應用的具體要求。