MySQL全文性能解决方案

时间:2009-08-20 02:01:41

标签: mysql performance full-text-search

如何处理如下的查询:

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

如果条件匹配(field1)返回的结果('someA')& match(field2)对('someB')都很大,整个查询都会非常非常慢。

解决方案?

2 个答案:

答案 0 :(得分:1)

您可以为两列FULLTEXTfield1创建另一个field2索引。然后使用以下方法一次搜索两个搜索字词:

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

当然,这可能会找到field1包含两个搜索字词的行,而field2则不包含这两个搜索字词。我不确定您的应用的确切要求。

答案 1 :(得分:0)

也许Sphinx可以有效地解决这个问题。 Sphinx提供强大的全文搜索功能。我不确定这是不是你想要做的,但听起来很接近。