У меня есть таблица из 2 + миллионов (строк) продуктов с 44 полями (столбцами). Я пытаюсь запросить эту таблицу на основе поля «NAME» (varchar 160), на котором у меня включен полнотекстовый индекс.SQL Match Against Slow Query
Вот запрос, который выполняет 71.34 секунды для выполнения с помощью трех словного ключевого слова: 62.47 секунд с двумя словами $ keyword и 0.017 секунд для выполнения одним словом $ keyword.
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 раза. Сейчас ситуация намного быстрее, но я проведу Sphinx для дальнейшего улучшения. Благодаря! – user514731