gpt4 book ai didi

mysql - 为什么我的 SQL 这么慢?

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

我的表相当小,大约有 50,000 行。我的架构如下:

每日

  • 匹配ID
  • 用户编号
  • 结果
  • 圆形
  • 比赛编号

查询:

SELECT user_id 
FROM `daily`
WHERE user_id IN (SELECT user_id
FROM daily
WHERE round > 25
AND tournament_id = 24
AND (result = 'Won' OR result = 'Lost'))

最佳答案

以你现在的方式使用 in 关键字是一件非常危险的事情 [从性能的角度来看]。在这种情况下,它将导致子查询 [(select user_id from daily where round > 25 and tournament_id=24 and (result='Won' or result='Lost'))] 运行 50,000 次。

你会想把它转换成一个 join something to the effect of

select user_id from daily a join
(select user_id from daily where round > 25 and tournament_id=24 and (result='Won' or result='Lost')) b on a.user_id = b.user_id

做类似的事情只会产生两个查询和一个连接。

正如 Cyber​​nate 在您的具体示例中指出的那样,您可以简单地使用 where 子句,但我继续建议这样做,以防您的查询实际上比您发布的内容更复杂。

关于mysql - 为什么我的 SQL 这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189705/

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