当连接具有数百万个数据的多个表时,我遇到了订单问题。但是我得到了解决方案而不是加入EXISTS的独特使用将改善以下问题的性能
How to improve order by performance with joins in mysql
SELECT
`tracked_twitter` . *,
COUNT( * ) AS twitterContentCount,
retweet_count + favourite_count + reply_count AS engagement
FROM
`tracked_twitter`
INNER JOIN
`twitter_content`
ON `tracked_twitter`.`id` = `twitter_content`.`tracked_twitter_id`
INNER JOIN
`tracker_twitter_content`
ON `twitter_content`.`id` = `tracker_twitter_content`.`twitter_content_id`
WHERE
`tracker_twitter_content`.`tracker_id` = '88'
GROUP BY
`tracked_twitter`.`id`
ORDER BY
twitterContentCount DESC LIMIT 20 OFFSET 0
但是如果我只需要父表中的结果集,那么该方法就可以解决了。如果,我想在父表之外执行分组计数和其他数学函数,该怎么办?我编写了一个解决我的标准的查询,但执行时需要20秒。我怎样才能优化它?
提前致谢
答案 0 :(得分:2)
鉴于查询已经相当简单,我要查看的选项是......
您在此列表中越深入,解决方案就会越多。 我想这取决于您需要多快的查询以及您需要多少解决方案才能扩展。