我有以下MySQL查询:MySQL查询优化与JOIN和COUNT
SELECT t1.id, t1.releaseid, t1.site, t1.date, t2.pos FROM `tracers` as t1
LEFT JOIN (
SELECT `releaseid`, `date`, COUNT(*) AS `pos`
FROM `tracers` GROUP BY `releaseid`
) AS t2 ON t1.releaseid = t2.releaseid AND t2.date <= t1.date
ORDER BY `date` DESC , `pos` DESC LIMIT 0 , 100
的想法是选择一个版本,并指望有多少其他网站也发布了它之前的录制日期,以获得位置。
解释说:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 498422 Using temporary; Using filesort
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 91661
2 DERIVED tracers index NULL releaseid 4 NULL 498422
如何消除使用临时任何建议;使用filesort?这需要很长的时间。我想到并尝试过的索引没有任何帮助。
你的确切指数是什么? '(releaseid)','(releaseid,date)'和'(date,pos)'? – knittl