gpt4 book ai didi

mysql - Sql Join 花费大量时间

转载 作者:行者123 更新时间:2023-12-01 00:19:42 24 4
gpt4 key购买 nike

我想执行此查询,但它需要 5 个多小时,但数据库大小仅为 20mb。这是我的代码。在这里,我使用 reg_id 连接了 11 个表。我需要所有具有不同值的列。请指导我如何重新排列查询。

SELECT * 

FROM degree

JOIN diploma
ON degree.reg_id = diploma.reg_id
JOIN further_studies
ON diploma.reg_id = further_studies.reg_id
JOIN iti
ON further_studies.reg_id = iti.reg_id
JOIN personal_info
ON iti.reg_id = personal_info.reg_id
JOIN postgraduation
ON personal_info.reg_id = postgraduation.reg_id
JOIN puc
ON postgraduation.reg_id = puc.reg_id
JOIN skills
ON puc.reg_id = skills.reg_id
JOIN sslc
ON skills.reg_id = sslc.reg_id
JOIN license
ON sslc.reg_id = license.reg_id
JOIN passport
ON license.reg_id = passport.reg_id
GROUP BY fullname

如果我做错了请帮助我

最佳答案

评论有点长。

您的查询的第一个问题是您正在使用 select *group by fullname。您在 select 中有无数列不在 group by 中。除非您真的、真的、真的知道自己在做什么(对此我表示怀疑),否则这是编写查询的错误方法。

您的性能问题无疑是由于笛卡尔积和缺少索引造成的。您正在加入不同的维度——例如技能和学位。结果是所有可能性的产物。对于某些人来说,数据量会越来越大。

然后,问题是:您是否有连接中使用的键的索引?为了性能,您通常需要这样的索引。

关于mysql - Sql Join 花费大量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34915475/

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