我的SQL查询优化我查询简单的查询
SELECT r.*,u.name AS name, u.username AS username
FROM jos_js_res_record AS r
LEFT JOIN jos_users AS u on u.id = r.user_id
LEFT JOIN jos_js_res_record_values AS f on f.record_id = r.id AND f.field_type = 'digits'
AND f.field_label = 'Price'
WHERE r.section_id = 2
AND MATCH (fieldsdata) AGAINST ('article' IN NATURAL LANGUAGE MODE)
AND r.title like 'A%'
ORDER BY f.field_value + 0 desc, f.field_value desc
我不知道为什么,但它产生解释“利用地方;使用临时;使用filesort。我尽我所知来优化这个查询,但没有结果。据我所知这是因为加入了jos_js_res_record_values
和ORDER BY
。如果我评论ORDER BY
或将其更改为ORDER BY r.created
使用临时消失。
为什么使用'ORDER BY f.field_value + 0'?它是一个'ENUM'列吗? –