15年行业经验 一站式解决方案 大型活动策划公司
免费咨询热线: 4007181001

MySQL的语句执行顺序

发布时间:2020-05-31 19:22   点击量:

MySQL的语句分为11个步骤。如下图所示,从操作总是首先执行,而限制操作是最后执行的。这些操作中的每一个都会产生一个虚拟表,作为流程的输入,但是这些虚拟表对用户来说是透明的,结果只会返回最后一个虚拟表。如果语句中没有指定子句,将跳过相应的步骤。

方法/步骤1让我们详细分析查询处理的每个阶段

计算左表和右表的笛卡尔乘积。生成虚拟表VT1

2ON

:虚拟表VT1已被打开过滤,只有那些匹配的行将被记录在虚拟表VT2中。

3JOIN

:如果指定了OUTER联接(如左联接和右联接),则保留表中不匹配的行将作为外部行添加到虚拟表VT2,以生成虚拟表VT3。如果VT3,rug from子句包含两个以上的表,那么将对由前一个JOIN连接和下一个表生成的结果VT3重复步骤1到3的三个步骤,直到处理完所有的表。

4在哪里

:用WHERE条件过滤虚拟表VT3。只有匹配的记录才会被插入虚拟表VT4。

5分组依据

根据group by子句中的列,VT4中的记录被分组以生成VT5。

6CUBE | ROLLUP

:对表VT5执行多维数据集或汇总操作以生成表VT6。

7拥有

:对虚拟表VT6应用过滤,只有匹配的记录才会被插入到虚拟表VT7中。

8选择

:执行选择操作,选择指定的列,并将其插入虚拟表VT8。

9独特

:重编VT8中的记录。生成虚拟表VT9。

10订购方

:对虚拟表VT9中的记录进行排序,以生成虚拟表VT10。

11极限

:取出指定行的记录,生成虚拟表VT11,并返回结果。

结束语主观能动性有助于缩短梦想的距离

相关推荐