gpt4 book ai didi

mysql - 如何提高SQL的性能?(使用子查询)

转载 作者:行者123 更新时间:2023-11-29 13:02:06 27 4
gpt4 key购买 nike

SELECT contents.*, 

(SELECT COUNT(*)
FROM comments
WHERE comments.scrap_id = contents.org_scrap_id) AS comment_count

FROM contents
ORDER BY comment_count

这就是我的意图。但等待时间很长。

如何提高该查询的性能?

最佳答案

您可以使用联接重写查询,但为了提高性能,需要解释计划,您正在使用将为内容表中的每一行运行的相关子查询,并且会降低查询的性能,对于以下查询,您需要一个索引对于评论表中的 scrap_id 和内容表中的 org_scrap_id(如果它不是主键)

SELECT c.*, COUNT(cm.scrap_id) comment_count
LEFT JOIN comments cm
ON cm.scrap_id = c.org_scrap_id
FROM contents c
GROUP BY c.org_scrap_id
ORDER BY comment_count

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

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