Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的mysql多重连接查询在采用了所有优化之后速度如此之慢?_Mysql_Join_Group By_Query Optimization - Fatal编程技术网

为什么我的mysql多重连接查询在采用了所有优化之后速度如此之慢?

为什么我的mysql多重连接查询在采用了所有优化之后速度如此之慢?,mysql,join,group-by,query-optimization,Mysql,Join,Group By,Query Optimization,假设你有这样的疑问 SELECT t1.c1, t2.c2, ... more fields from joins ... FROM t1 LEFT JOIN t2 ON t1.id = t2.id ... more joins ... GROUP BY t1.field WHERE ... 您遇到了性能问题,并且您认为您已经涵盖了这种类型的查询,例如在上的列中定义索引、分组依据、其中等。。但是它仍然非常慢。检查您的所有连接是否都是到实际的表而不是视图 我知道这相当于在

假设你有这样的疑问

SELECT
    t1.c1,
    t2.c2,
    ... more fields from joins ...
FROM t1
LEFT JOIN t2 ON t1.id = t2.id
... more joins ...
GROUP BY t1.field
WHERE ...

您遇到了性能问题,并且您认为您已经涵盖了这种类型的查询,例如在上的列中定义索引、
分组依据
其中
等。。但是它仍然非常慢。

检查您的所有连接是否都是到实际的表而不是视图

我知道这相当于在陈述显而易见的事实,但它可能会有一段时间被难住,因为我刚刚忘记其中一个连接是一个视图


这是一个在我自己找到答案之前我还没有来得及问的问题,但我想发帖帮助其他人解决同样的问题,因为其他任何帖子都没有提到使用连接优化分组查询。我不确定这是否被接受,但我也在上添加了接受的答案,所以如果管理员想删除这篇文章,我不会生气

检查您的所有联接是否都是到实际的表而不是视图

我知道这相当于在陈述显而易见的事实,但它可能会有一段时间被难住,因为我刚刚忘记其中一个连接是一个视图


这是一个在我自己找到答案之前我还没有来得及问的问题,但我想发帖帮助其他人解决同样的问题,因为其他任何帖子都没有提到使用连接优化分组查询。我不确定这是否被接受,但我也在上添加了接受的答案,所以如果管理员想删除这篇文章,我不会生气

这是因为您的数据库设计和结构,我们需要了解其中发生了什么,我们至少需要知道“显示表”和“解释查询”command@jcho360我回答了我自己的问题-见下文,这只是为了防止其他人有同样的问题,并且不记得检查他们所有的联接是否都是表而不是视图!“我很高兴你解决了这个问题,不管怎么说,看看解释命令,他可以告诉你你正在加入一个视图,很幸运,解释没有告诉我我正在加入一个视图-我已经做了解释并创建了索引,所以我所有的连接都是eq_ref类型的,所以我很困惑为什么它仍然如此缓慢,直到我意识到因为您的数据库设计和结构,我们需要了解其中发生了什么,我们至少需要知道“show table”和“explain query”command@jcho360我回答了我自己的问题-请参见下文,这只是为了防止其他人有相同的问题,并且不记得检查他们的所有联接是否都是表而不是视图!”我很高兴你解决了这个问题,不管怎么说,看看解释命令,他可以告诉你你正在连接到一个视图,很幸运,解释没有告诉我我正在连接到一个视图-我已经做了解释并创建了索引,所以我所有的连接都是eq\u ref类型的,所以我很困惑为什么它仍然如此缓慢,直到我意识到!聪明的回答是“检查所有连接是否都是到实际的表而不是视图!”。(y) 聪明的回答是“检查所有连接是否都是到实际的表而不是视图!”。(y)