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