gpt4 book ai didi

mysql - 使用 JOIN 提高 SQL 查询性能

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:36 24 4
gpt4 key购买 nike

我有以下执行缓慢的 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

但是性能也没有提高。我对最后一个查询运行了解释,结果如下:

mysql explain

我很感激任何关于我可以做些什么来提高这个查询的性能的指示。

最佳答案

SELECT *
FROM
(
SELECT a.*
FROM news_events a
WHERE a.user_id = 2416
UNION
SELECT ne.*
FROM news_events ne
INNER JOIN likes l
ON ne.id=l.contentid
WHERE l.user_id = 2416
)
ORDER BY 1 DESC
LIMIT 0,10

关于mysql - 使用 JOIN 提高 SQL 查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16147595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com