我有以下,低性能,SQL查詢:提高SQL查詢性能與JOIN
SELECT *
FROM news_events
WHERE 1 AND (user_id = 2416) OR id IN(SELECT content_id FROM likes WHERE user_id = 2416)
ORDER BY id DESC
LIMIT 0,10
的news_events表上USER_ID索引。 喜歡表在user_id上有一個索引。
要儘量提高性能,我已經重新編寫使用INNER JOIN通過以下方式查詢:
SELECT a.*
FROM news_events a
INNER JOIN likes b ON (a.id = b.content_id)
WHERE (a.user_id = 2416) OR (b.user_id = 2416)
ORDER BY a.id DESC
LIMIT 0,10
但性能並不任何改善。我已經運行在這最後的查詢說明,這是結果:
我明白什麼我可以做些什麼來改善查詢性能的任何指針。
你是什麼意思慢?多久了?你有多少行? – 2013-04-22 12:57:44
與瑣事一起Q.表新聞事件中有多少列。 – 2013-04-22 12:59:30
desc語句的限制+順序可能會導致性能下降。如果不是強制性的,請不要訂購,或者由ASC訂購。 – Sebas 2013-04-22 13:01:12