我一直在努力的一个程序使用复杂的MySQL查询来合并来自多个具有匹配项目ID的表的信息。但是,由于我添加了您在下面看到的子查询,因此查询从1秒以内执行到3秒以上。你有什么建议,我可以做什么来优化这个查询更快?我认为有一个复杂的查询比4或5个更小的查询更好吗?复杂的MySQL查询很慢
SELECT uninet_articles.*,
Unix_timestamp(uninet_articles.gmt),
uninet_comments.commentcount,
uninet_comments.lastposter,
Unix_timestamp(uninet_comments.maxgmt)
FROM uninet_articles
RIGHT JOIN (SELECT aid,
(SELECT poster
FROM uninet_comments AS a
WHERE b.aid = a.aid
ORDER BY gmt DESC
LIMIT 1) AS lastposter,
Count(*) AS commentcount,
Max(gmt) AS maxgmt
FROM uninet_comments AS b
GROUP BY aid
ORDER BY maxgmt DESC
LIMIT 10) AS uninet_comments
ON uninet_articles.aid = uninet_comments.aid
LIMIT 10
您是否有所需的桌子上的所有“索引”? – Stony
作为一个较短的答案,不,是的 - 我没有具体的建议,但您认为一个复杂的查询总是比多个小型查询更好。 –
请'解释' – CAFxX