다음 mysql 쿼리를 실행하는 데 40 초가 걸렸습니다. 너무 많습니다.느린 mysql 쿼리를 최적화
어떻게 최적화 할 수 있습니까?
SELECT
downloads.*,
COUNT(DISTINCT comment.id) AS commentsNum,
AVG(users_votes.rate) AS score,
COUNT(DISTINCT users_votes.id) AS rateNum,
COUNT(DISTINCT users_download.id) AS downloadsNum
FROM downloads
LEFT JOIN (
SELECT * FROM comment WHERE type='download'
) comment ON downloads.id = comment.typeID
LEFT JOIN (
SELECT * FROM users_votes WHERE section='download' AND rate>0
) users_votes ON downloads.id = users_votes.voteID
LEFT JOIN (
SELECT id,downloadID FROM users_download GROUP BY userID,downloadID
) users_download ON downloads.id = users_download.downloadID
GROUP BY downloads.id
의 결과는 내용 설명 : 당신은 그룹 결과에 download_id으로 가입 설정해야
@FatihK 어떻게해야합니까 :) 것으로 분석? –
'downloads.id' 열에 대한 색인이 생성됩니까? fk로 사용할 때 indexex인가? (예 :'users_download.downloadID')? – Paolo
@Paolo 네, 기본 키입니다 –