如何优化MySQL查询以查找三个字段中的子字符串?

时间:2011-06-02 17:23:32

标签: mysql

我有以下MySQL表字段:

description1description2description3:Varchar(500)

value:int

并希望找到其中至少有一个描述包含用户搜索的string的记录。 现在我正在使用以下查询。它有效,但返回结果大约需要1.5秒。

SELECT `table`.`value`, 
      `table`.`description1`, 
      `table`.`description2`, 
      `table`.`description3`
      FROM `table`
WHERE ( `table`.`description1` LIKE '%string%'
OR `table`.`description2` LIKE '%string%'
OR `table`.`description3` LIKE '%string%' )
ORDER BY  `table`.`value` DESC LIMIT 0 , 9

有没有办法让结果更快?

(请注意,value字段已编入索引。)

1 个答案:

答案 0 :(得分:1)

添加全文索引,而不是像使用AGAINST