mysql - 为什么以下查询需要很长时间才能显示结果?

标签 mysql

    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

上述查询应从 2 个表(bugs_activity 和 bugs)返回数据。但它只是进入了无限循环。可能出了什么问题?

在查询返回以下结果之前使用 EXPLAIN -

enter image description here

最佳答案

可能是因为查询中没有哪些字段构成这种关系的信息,所以结果集太大,执行超时。

您需要在连接子句中了解 BUGS 中的哪些字段与 BUGS_ACTIVITY 相关。

例如,如果您有两个表:Customer 和 Customer_Contact,则在表 Customer_Contact 中,您有一个字段是表 Customer 的外键。您需要在查询中提供以下信息:

SELECT cus.*
  FROM customer cus
 INNER JOIN customer_contact con ON con.customer_id = cus.id

这只是一个示例,如果您提供两个表中存在哪些字段,它可能会有所帮助。我可以想象这样的事情:

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

关于mysql - 为什么以下查询需要很长时间才能显示结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804058/

相关文章:

mysql - SQL在一个查询中使用where获取一列的总和以及不同列的总和?

mysql - SQL数据修改

php - 如何向远程数据库添加数据?

java - 数据库中的循环与应用程序中的循环

php - 类别过滤器 IN 和电子商务 IN

php - 合并两个mysql组查询

mysql - 如何使用列名 "default"将数据插入数据库

php - 插入数据时 if 语句无法正常工作

php mysql_fetch_array

mysql - GROUP_CONCAT 中的双结果与 MySQL 中的双 JOIN