如何处理之类的查询: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
既不含。我不确定您的应用的具体要求。