MySql 解释效率

MySql EXPLAIN efficiencies

我正在尝试使用 EXPLAIN 来仔细查看我的查询,看看它们是如何 运行,到目前为止,最大的 id EXPLAIN已经 7 次了,但这是一个冗长的查询,有很多事情要做。我刚刚用类似于下面的结构进行了另一个查询,EXPLAIN 给了我一个 id 最大值 13。据我所知 EXPLAIN 通常意味着查询较少 efficient/runs id EXPLAIN 给出的越高越长,但这是相对规则还是存在某种界限?就像一个查询 运行 最多 2 个 ID 被视为非常有效,而一个最大 ID 为 13 的查询被视为非常低效,还是只有 2 个比 13 个更有效?当然,还有第三个选项,id number 与效率无关。

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

我从来没有真正听说过与效率相关的id号。除非我弄错了,否则它只是比最终参与处理查询的 tables(和派生的 tables)的数量多一点。

加入一个巨大的 table 一次可能会成为 less/lower id;加入重复的 temp tables(因为你不能在一个查询中使用它们两次)但是那个巨大的 table(和 better/more 适当索引)的一小部分相关多次肯定会增加 id 计数,但可能 运行 更快更有效......甚至考虑生成这些临时 tables 所需的先前查询的成本。