对于以下 SELECT 查询,是否可以避免“使用临时”和“使用文件排序”?我想不出办法做到这一点。

我尝试为 top_expire 和 program 添加索引,但没有帮助 ORDER BY 查询需要 1 秒以上,而没有它在 localhost 上仅为 0.003 秒

SELECT ad.*, p.link
FROM (SELECT ad.*
FROM mod_ad ad
JOIN mod_ad_auta auta ON ad.id = auta.ad_id
WHERE ad.active != 0 AND ad.usr_active != 0 AND ad.expire > 1371151608 AND ad.cat_id = '1' AND ad.price <= '10000'
AND auta.rocnik BETWEEN '1950' AND '2013'
AND auta.km BETWEEN '0' AND '500000'
ORDER BY top_expire DESC, program DESC, ad.id DESC LIMIT 0,10) as ad
JOIN pages …Run Code Online (Sandbox Code Playgroud)