gpt4 book ai didi

mysql - SELECT 和 JOIN 花费的时间太长

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:10 26 4
gpt4 key购买 nike

我有两个表,我想获取这两个表之间特定日期的公共(public)列,我还希望将它们分组:

SELECT uv.keywordid, uv.competitionid
FROM unique_views as uv
JOIN signups AS s
ON s.keywordid=uv.keywordid
AND s.competitionid=uv.competitionid
WHERE uv.dt_created > "2014-02-27"
AND s.dt_created > "2014-02-27"
GROUP BY
uv.keywordid, uv.competitionid
ORDER BY
uv.keywordid, uv.competitionid

keywordid 和 competitionid 在两个表中都有索引。此时两个表都有大约 11k 条记录,并且大多数条目具有相同的 keywordid 和 competitionid。

此查询将我的表锁定约 20 秒。我可以做些什么来提高速度?

最佳答案

因此,您需要在 2014 年 2 月 27 日之后创建的两个表中都有不同的 keywordid 和 competitionid 对。然后使用 DISTINCT,而不是 GROUP BY。

这是一种保证在进行连接之前从每个表中选择不同元组的方法。所以这应该很快:

select keywordid, competitionid 
from
(select distinct keywordid, competitionid from unique_views where dt_created > "2014-02-27") uv
inner join
(select distinct keywordid, competitionid from signups where dt_created > "2014-02-27") s
using (keywordid, competitionid)
order by keywordid, competitionid;

关于mysql - SELECT 和 JOIN 花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22067093/

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