MySQL全文性能解决方案

标签 mysql performance full-text-search

如何处理如下查询:

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

如果条件 match(field1) against('someA') 和 match(field2) against('someB') 返回的结果都很大,则整个查询将非常非常慢。

有解决方案吗?

最佳答案

您可以为 field1field2 两列创建另一个 FULLTEXT 索引。然后使用以下命令同时搜索两个搜索词:

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

当然,这可以找到 field1 包含两个搜索词而 field2 两者都不包含的行。我不确定您的应用的具体要求。

关于MySQL全文性能解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303577/

相关文章:

php - 使用 php 选择查询内的 Sql 更新查询

mysql - LARAVEL 迁移错误 SQLSTATE[42000] "exist in table"

java - Java中Lucene 3.0能否获得按频繁更新字段排序的实时搜索结果

iPhone 和顶点缓冲区对象

mysql - 快速全文搜索在 MySQL 中按 id 排序的精确短语一次出现

mysql - boolean 全文搜索排除短语 AB-CD,例如-"AB-CD"?

mysql 退出处理程序帮助

MySQL IF 逻辑内部触发器与 NEW 和 OLD

javascript - 将图像存储在高速缓存中

java - 将数据从弹出窗口传递回其父窗口