我的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'列嗎? –