Mysql 为什么下面的查询要花很长时间才能显示结果?
上面的查询应该返回两个表中的数据(bugs\u activity&bugs)。但它只是进入一个无限循环。有什么不对劲吗 在查询之前使用EXPLAIN返回以下结果-Mysql 为什么下面的查询要花很长时间才能显示结果?,mysql,Mysql,上面的查询应该返回两个表中的数据(bugs\u activity&bugs)。但它只是进入一个无限循环。有什么不对劲吗 在查询之前使用EXPLAIN返回以下结果- 发生这种情况可能是因为查询中没有关于哪些字段建立这种关系的信息,因此结果集太大,需要执行超时 您需要在join子句中通知BUGS中的哪个字段与BUGS\u活动相关 例如,如果有两个表,Customer和Customer\u Contact,则在表Customer\u Contact中有一个字段是表Customer的外键。您需要在查询中
发生这种情况可能是因为查询中没有关于哪些字段建立这种关系的信息,因此结果集太大,需要执行超时 您需要在join子句中通知BUGS中的哪个字段与BUGS\u活动相关 例如,如果有两个表,Customer和Customer\u Contact,则在表Customer\u Contact中有一个字段是表Customer的外键。您需要在查询中提供以下信息:
SELECT ba.bug_id,
ba.bug_when,
b.short_desc
FROM bugs_activity ba
INNER JOIN bugs b
order BY bug_id DESC
LIMIT 10
这只是一个例子,如果您提供两个表中都存在哪些字段,这可能会有所帮助。我可以想象这样的情况:
SELECT cus.*
FROM customer cus
INNER JOIN customer_contact con ON con.customer_id = cus.id
对于
JOIN
,您没有ON
子句,因此您得到的是一个笛卡尔积,它看起来像。这可能是一个非常大的行集,但是MySQL不会在select语句中循环。因此,如果您认为有一个无限循环在进行,那么它就在您的应用程序代码中的某个地方,而不是这个查询中(尽管连接不正确)
SELECT ba.bug_id,
ba.bug_when,
b.short_desc
FROM bugs_activity ba
INNER JOIN bugs b ON ba.bug_id = b.id
order BY bug_id DESC
LIMIT 10