我一直在研究这个小时,并且我提出的最好的代码是来自一个我在overs found中找到的例子。我经历了几次派生,但以下是唯一返回正确数据的查询,问题是仅需返回139行(超过2分钟)就只返回30行数据。我卡住了。 (life_p是一个“喜欢”mysql使用计数的多个左连接
SELECT
logos.id,
logos.in_gallery,
logos.active,
logos.pubpriv,
logos.logo_name,
logos.logo_image,
coalesce(cc.Count, 0) as CommentCount,
coalesce(lc.Count, 0) as LikeCount
FROM logos
left outer join(
select comments.logo_id, count(*) as Count from comments group by comments.logo_id
) cc on cc.logo_id = logos.id
left outer join(
select life_p.logo_id, count(*) as Count from life_p group by life_p.logo_id
) lc on lc.logo_id = logos.id
WHERE logos.active = '1'
AND logos.pubpriv = '0'
GROUP BY logos.id
ORDER BY logos.in_gallery desc
LIMIT 0, 30
我不知道什么是错,如果我做他们单独meaningremove的coalece和的加入之一:在运行
SELECT
logos.id,
logos.in_gallery,
logos.active,
logos.pubpriv,
logos.logo_name,
logos.logo_image,
count(*) as lc
FROM logos
left join life_p on life_p.logo_id = logos.id
WHERE logos.active = '1'
AND logos.pubpriv = '0'
GROUP BY logos.id
ORDER BY logos.in_gallery desc
LIMIT 0, 30
不到半秒(2-300毫秒)....
这里的解释链接:https://logopond.com/img/explain.png
通过overstack我的意思是在这里'stackoverflow':D,感谢豪尔赫我想知道如何解决代码显示 –
请添加解释的结果,并请在3个受影响的表中列出索引! – Shadow
Comments.logo_id,life_p.logo_id和徽标。ID都在其各自的表上编入索引。评论和徽标表格有几列,其中一些已编入索引但与表格上的请求无关。 继承人链接解释https://logopond.com/img/explain.png –