mysql之查询处理

查询处理可以分为逻辑查询处理和物理查询处理。
逻辑查询处理表示执行查询应该产生什么样的结果。
物理查询处理表示mysql数据库是如何得到该结果的。
两种查询的方法可能完全不同,但是得到的结果必定是相同的。

  1. 逻辑查询处理

在sql语言中,第一个被处理的子句总是FROM子句。

//示例
//前面的序号表示执行的顺序
(8) SELECT (9) DISTINCT<select_list>
(1) FROM<left_table>
(3) <join_type> JOIN <right_table>
(2)				ON<join_condition>
(4) WHERE <where_condition>
(5) GROUP BY<group_by_list>
(6) WITH {CUBE|ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY<order_by_list>
(11) LIMIT<limit_number>

可以看到最先执行的是FROM,最后执行的是LIMIT。每个操作都会产生一张虚拟表,该虚拟表作为一个处理的输入。这些虚拟表对用户是透明的,只有最后一步生成的虚拟表才会返回给用户。

猜你喜欢

转载自blog.csdn.net/weixin_41811413/article/details/87180312