我有一个包含44个字段(列)的2百万(行)产品表。 我试图查询这个基于'NAME'字段(varchar 160),我有一个全文索引。针对慢查询的SQL匹配
这是当前正在执行71.34秒,用三个字$关键字执行的查询, 62.47秒用两个单词$关键字执行并且用一个单词$关键字执行0.017秒。
SELECT ID,
MATCH(NAME) AGAINST ('$keyword') as Relevance,
MANUFACTURER,
ADVERTISERCATEGORY,
THIRDPARTYCATEGORY,
DESCRIPTION,
AID,
SALEPRICE,
RETAILPRICE,
PRICE,
SKU,
BUYURL,
IMAGEURL,
NAME,
PROGRAMNAME
FROM products
WHERE MATCH(NAME) AGAINST ('$keyword' IN BOOLEAN MODE)
GROUP BY NAME
HAVING Relevance > 6
ORDER BY Relevance DESC LIMIT 24
如何优化此查询以更好地执行2+单词$关键字查询?
消除“GROUP BY NAME”子句将性能提高了大约4倍。事情现在速度更快,但我会检查出狮身人面像进一步改善。谢谢! – user514731 2010-11-20 22:51:49