gpt4 book ai didi

mysql - SELECT 内的 SELECT MySQL 查询速度较慢

转载 作者:行者123 更新时间:2023-11-29 18:36:33 25 4
gpt4 key购买 nike

执行以下查询大约需要 3.55 秒。显然,大部分问题是由子查询引起的,因为当我单独运行类似的查询时,它需要 0.981 秒。我已经对表格建立了索引,所以我不确定我可能做错了什么。有什么想法吗?

SELECT
u.user_id,
u.username,
u.fullname,
u.avatar,
u.city,
u.state,
(
SELECT
COUNT(*) AS total_followers
FROM
FollowerRelationship fr
WHERE
fr.user_id = u.user_id
GROUP BY
fr.user_id
) AS total
FROM
Users u
ORDER BY
total DESC

最佳答案

您正在 select 子句中的子查询“外部”内容上加入子查询,这可能会减慢速度。如果您的索引设置正确,并且 fr.user_id 不可为空,则不需要对 users 表进行联接,因为您正在访问整个 FollowerRelationship (我是假设因为您需要用户成为关注者)和 Users 表,在这两种情况下:连接不会更改 COUNT 的数量。

SELECT
u.user_id,
u.username,
u.fullname,
u.avatar,
u.city,
u.state,
(
SELECT
COUNT(*) AS total_followers
FROM
FollowerRelationship fr
GROUP BY
fr.user_id
) AS total
FROM
Users u
ORDER BY
total DESC

或者,如果需要,您可以在子查询内重复连接。

关于mysql - SELECT 内的 SELECT MySQL 查询速度较慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45249488/

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