MySql EXPLAIN效率

时间:2016-02-29 23:13:47

标签: mysql explain

我正在尝试使用EXPLAIN仔细查看我的查询,看看它们是如何运行的,到目前为止,id中创建的最大EXPLAIN已经已经7了,但这是一个冗长的查询,有很多事情发生。我刚刚使用类似于下面的结构创建了另一个查询,EXPLAIN给了我id最多13个。根据我对EXPLAIN的了解,它通常意味着查询效率较低/运行id EXPLAIN给出的越高越长,但这是一个相对规则还是存在某种边界?就像是一个运行最多2个id的查询被认为是非常有效的,并且最大id为13的查询被视为非常低效,或者它只是2比13更有效?当然,id号的第三个选项与效率无关。

ID 13查询:

select if(cond1, subquery, if(cond2, subquery(subsubquery),
subquery(subsubquery))) as colA, if(cond1, subquery(subsubquery), if(cond2,
subquery(subsubquery), subquery(subsubquery))) as colB from TableA join
TableB on X group by y order by z desc

1 个答案:

答案 0 :(得分:1)

我从未真正听说过与效率相关的身份证号码。除非我弄错了,否则它只会超过最终参与处理查询的表(和派生表)的数量。

加入一张巨大的桌子可能会减少/降低内容;加入重复的临时表(因为你不能在一个查询中使用它们两次)但是那个巨大的表的一个微小的相关部分(以及更好/更适当的索引)多次肯定会增加id计数,但可能会运行更加快速和有效...甚至可以考虑生成这些临时表所需的前面查询的成本。