1
我在加入多个包含数百万数据的表时遇到了order by的问题。但我得到的解决方案具有鲜明的作为,而不是加盟EXISTS将从以下问题如何使用order by,group by and join来提高查询性能
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秒才能执行。我怎样才能优化它?
在此先感谢
GROUP BY无效。将在新版本的MySQL上引发错误(除非在兼容模式下),并且在旧版本中返回不可预测的数据。一般的GROUP BY规则说:“如果指定了GROUP BY子句,SELECT列表中的每个列引用必须标识一个分组列或作为set函数的参数。” – jarlh
请确认您的所有专栏名称。 “is_influencer”来自哪个表? 'tracked_twitter_id'? –
@GordonLinoff我刚刚编辑了where条件,错误地添加了这两个条件。 – Tamizharasan