`

mysql 执行顺序

阅读更多

MySQL的语句执行顺序

MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。

下面我们来具体分析一下查询处理的每一个阶段

  1. FORM: 对FROM的左边的表和右边的表计算笛卡尔积。产生虚表VT1
  2. ON: 对虚表VT1进行ON筛选,只有那些符合<join-condition>的行才会被记录在虚表VT2中。
  3. JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3, 如果 from子句中包含两个以上的表的话,那么就会对上一个join连接产生的结果VT3和下一个表重复执行步骤1~3这三个步骤,一直到处理完所有的表为止。
  4. WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合<where-condition>的记录才会被插入到虚拟表VT4中。
  5. GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5.
  6. CUBE | ROLLUP: 对表VT5进行cube或者rollup操作,产生表VT6.
  7. HAVING: 对虚拟表VT6应用having过滤,只有符合<having-condition>的记录才会被 插入到虚拟表VT7中。
  8. SELECT: 执行select操作,选择指定的列,插入到虚拟表VT8中。
  9. DISTINCT: 对VT8中的记录进行去重。产生虚拟表VT9.
  10. ORDER BY: 将虚拟表VT9中的记录按照<order_by_list>进行排序操作,产生虚拟表VT10.
  11. LIMIT:取出指定行的记录,产生虚拟表VT11, 并将结果返回。

 转自:http://www.cnblogs.com/rollenholt/p/3776923.html

分享到:
评论

相关推荐

    mysql执行过程

    MySQL 执行过程详解 MySQL 是一个流行的关系型数据库管理系统,本文将对 MySQL 执行过程进行详细的解释,并结合具体的实例来讲解 MySQL 存储过程。 什么是 MySQL 存储过程? MySQL 存储过程是一个预编译的 SQL ...

    Mysql执行过程与BufferPool缓存机制.png

    Mysql执行过程与BufferPool缓存机制.png

    MySQL 执行过程与查询缓存1

    MySQL 执行过程与查询缓存是数据库操作中的关键环节,理解这一过程对于优化数据库性能至关重要。MySQL 的执行流程包括以下几个步骤: 1. **客户端发送查询**:当用户通过MySQL客户端发送一条SQL查询时,这个请求会...

    mysql经典教程+mysql存储过程讲解

    存储过程是MySQL中的一个重要概念,它是一组预编译的SQL语句,可以在需要时执行。存储过程的好处包括提高性能、减少网络流量、增强安全性、简化复杂的操作和提供模块化的代码。在“MySQL5.0存储过程.pdf”中,你将学...

    mysql存储过程调试工具

    在"Debugger for MySQL"中,用户可以通过简单的操作在存储过程的任一语句前设置断点,当执行到该位置时,程序会暂停,提供给开发者分析当前状态的机会。 查看变量信息是另一个重要的调试步骤。在存储过程中,变量的...

    MySQL存储过程编程.pdf

    存储过程是一种可以在数据库中存储和执行的程序单元,它可以实现复杂的业务逻辑和数据处理操作。 在 MySQL 5.0 中,存储过程的实现对 MySQL 数据库的发展具有里程碑的意义。 MySQL 数据库已经是现今具有统治地位的...

    mysql存储过程教程

    MySQL存储过程是一种预先定义并编译好的SQL语句集合,它存储在服务器上,并能在不同的应用程序中被调用执行。自MySQL 5.0版本起,引入了存储过程这一强大功能,这极大地丰富了MySQL的功能性和灵活性。存储过程不仅...

    mySQL存储过程调用

    MySQL自5.0版本起引入了存储过程功能,这使得开发者能够利用存储过程来封装复杂的SQL语句或一系列SQL语句,从而提高应用程序的性能和安全性。 ### PHP与MySQL存储过程的交互 在PHP中调用MySQL存储过程,通常涉及到...

    sql和MySQL的语句执行顺序分析

    sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。 一、sql执行顺序 (1)from (2) on (3) join (4) where (5)group by(开始使用select中的别名,后面的语句中都可以使用) (6) avg,...

    MySql视图顺序整理工具

    在这个场景中,"MySql视图顺序整理工具"是一个专为MySQL视图设计的应用程序,旨在帮助用户更有效地管理和组织Navicat中的视图SQL。 Navicat是一款流行的数据库管理工具,支持多种数据库系统,包括MySQL。在Navicat...

    MySQL存储过程.rar

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列的SQL语句,形成一个可重复执行的单元,极大地提高了数据库操作的效率和便捷性。在MySQL中,存储过程可以包含复杂的业务逻辑,比如条件...

    MySQL存储过程编程教程.pdf

    MySQL存储过程编程是数据库应用开发中的一个重要环节,它可以帮助开发者将一系列的数据库操作封装起来,以提高程序的可维护性和运行效率。在MySQL 5.0及以上版本中,存储过程、函数和触发器的支持为数据库提供了更...

    mysql-5.5安装程序和详细过程

    下载完成后,双击运行该安装程序。 安装过程大致分为以下几个步骤: 1. **欢迎界面**:首先会显示一个欢迎界面,点击“下一步”继续。 2. **许可协议**:阅读并接受MySQL的许可协议,这是使用软件的前提。选择“我...

    c API 调用mysql存储过程完成增删改查

    在IT领域,C API(应用程序接口)是一种编程接口,它允许程序员使用C语言与特定的系统或服务进行交互。在本例中,我们关注的是如何...同时,由于是用C语言编写,所以程序运行速度快,且可以方便地与其他C/C++代码集成。

    MySQL 是怎样运行的:从根儿上理解 MySQL(上).pdf

    MySQL采用客户端/服务器架构,其中客户端应用程序与服务器程序通信以执行数据库操作。客户端通过网络或本地接口向服务器发送SQL查询,服务器解析并执行查询,然后将结果返回给客户端。在日常使用中,我们通常通过...

    mysql5.1安装全过程图解

    这将将 MySQL 作为 Windows 的服务运行,并在 Windows 启动时自动启动服务。 十二、设置根帐号 root 的登录密码 在设置根帐号 root 的登录密码页面,输入密码并确认。这一步是是否要把 mysql 设置成 windows 的...

    MYSQL执行计划及索引最佳实践

    ### MySQL执行计划及索引最佳实践 #### 一、MySQL执行计划详解 MySQL执行计划是MySQL处理SQL查询的方式,它提供了关于SQL语句如何被优化和执行的信息。通过理解执行计划,可以有效地优化SQL查询,提高数据库性能。...

    2021年MySQL高级教程视频.rar

    24.MySQL高级SQL技巧SQL执行顺序及正则表达式.avi 25.MySQL高级SQL技巧数字函数与字符串函数.avi └26.MySQL高级SQL技巧日期函数与聚合函数.mp4 ├第二天视频 01.MySQL高级今日内容.mp4 02.MySQL高级体系结构.avi 03...

Global site tag (gtag.js) - Google Analytics