我一直在研究這個小時,並且我提出的最好的代碼是來自一個我在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 –