我有以下执行缓慢的 SQL 查询:
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 上有索引。likes表在 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
但是性能也没有提高。我已经对最后一个查询进行了解释,结果如下:
我很感激任何关于我可以做些什么来提高这个查询的性能的指针。