следующий запрос 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
результат EXPLAIN:
@FatihK что я должен делать? –
индексируется столбец 'downloads.id'? это indexex при использовании в качестве fk также (например, 'users_download.downloadID')? – Paolo
@Paolo да, это первичный ключ –