Mysql 为什么下面的代码非常慢?

Mysql 为什么下面的代码非常慢?,mysql,sql,Mysql,Sql,这就是我试图在mysql服务器上请求的SQL。出于某种原因,这需要太多的时间。我可以在一秒钟内分别获得s.P2M和s.P2A,但这需要永远的时间。 有人知道为什么吗?在where子句中不使用join的情况下,将gamesstats中的用作gs,stats用作s,实际上是在两个表之间创建交叉联接。添加连接条件。通过在where子句中使用来自gamesstats as gs、stats as s的而不使用连接,可以有效地在两个表之间创建交叉连接。添加连接条件。在gamesstats和stats之间没

这就是我试图在mysql服务器上请求的SQL。出于某种原因,这需要太多的时间。我可以在一秒钟内分别获得
s.P2M
s.P2A
,但这需要永远的时间。
有人知道为什么吗?

在where子句中不使用join的情况下,将gamesstats中的
用作gs,stats用作s
,实际上是在两个表之间创建交叉联接。添加连接条件。

通过在where子句中使用来自gamesstats as gs、stats as s的
而不使用连接,可以有效地在两个表之间创建交叉连接。添加连接条件。

在gamesstats和stats之间没有连接条件。因此,您正在创建一个可能有数十亿行大小的数据库。

您在gamesstats和stats之间没有连接条件。因此,您正在创建一个可能有数十亿行大小的应用程序。

您可以创建一个WHERE而不是join,我一分钟前发现我没有这样做。不管怎样,谢谢。这和加入逻辑上是一样的。你可以做一个WHERE而不是join,我一分钟前发现我没有这样做。不管怎样,谢谢。这和加入逻辑上是一样的。你可以做一个WHERE而不是join,我一分钟前发现我没有这样做。无论如何,谢谢。你可以做一个WHERE而不是join,我发现我一分钟前还没有加入。无论如何,谢谢你。
SELECT gs.HomeTeamId, 
100*avg(s.P2M)/avg(s.P2A) as P2P FROM gamesstats as gs, stats as s 
WHERE gs.LeagueId = '145' AND 
gs.SeasonStart = '2010' 
GROUP BY gs.HomeTeamId 
HAVING P2P > 52.12765958