MySQL查询语句执行流程剖析

MySQL查询语句执行流程解析

对MySQL查询语句的执行顺序进行了梳理。

(1) FROM子句 - 最先执行

FROM employees e开始,MySQL会率先读取FROM子句中所涉及的表的相关信息。

(2) ON条件 - 连接条件筛选

JOIN departments d ON e.dept_id = d.id为例,此步骤是对连接起来的表的行进行匹配,只有满足ON条件的行才会被保留下来。

(3) JOIN操作 - 开展表连接

MySQL支持多种连接方式,像INNER JOIN、LEFT/RIGHT JOIN、CROSS JOIN等都包含在内。

(4) WHERE条件 - 行级过滤

例如WHERE e.salary > 5000 AND d.location = 'NY',在这个阶段不能使用SELECT中的别名,也不能使用聚合函数(比如COUNT、SUM等)。

(5) GROUP BY - 分组操作

比如GROUP BY d.name, e.position,可以对不在SELECT中的列进行分组,分组之后每组会生成一行结果。

(6) WITH CUBE/ROLLUP - 生成超组

GROUP BY d.name WITH ROLLUP这样的语句,会生成小计和总计的行。

(7) HAVING - 分组后过滤

例如HAVING AVG(e.salary) > 6000,在这里可以使用聚合函数,也能够使用SELECT中定义的别名。

(8) SELECT - 选择输出列

比如SELECT d.name, AVG(e.salary) as avg_sal,会进行表达式计算以及函数调用,并且定义列的别名。

(9) DISTINCT - 去重操作

比如SELECT DISTINCT department,MySQL有可能在GROUP BY的时候就已经完成了去重工作。

(10) ORDER BY - 结果排序

例如ORDER BY avg_sal DESC,可以使用SELECT中定义的别名,对最终的结果集进行排序,不过这部分性能消耗比较大。

(11) LIMIT - 结果限制

LIMIT 10 OFFSET 5,这是MySQL特有的语法,其他数据库可能有不同的实现方式,它的作用是限制返回的行数。

恐惧并非实际存在的事物,它只是我们内心对未来的一种自我暗示,是由心灵衍生而来的产物。-- 烟沙九洲

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12603.html

(0)
LomuLomu
上一篇 2025 年 6 月 20 日
下一篇 2025 年 6 月 21 日

相关推荐

  • 2025年最新DataGrip永久破解教程 | 附激活码&破解补丁下载 🚀

    还在为DataGrip的激活问题发愁吗?🤔 本文将手把手教你如何永久破解DataGrip至2099年!这个方法同样适用于JetBrains全家桶其他IDE,包括IDEA、PyCharm等。 先看破解成果 ✨ 成功破解后,你的DataGrip有效期将延长至2099年!看看这个令人兴奋的截图: 准备工作 🛠️ 1. 下载DataGrip安装包 如果已经安装可以跳…

    DataGrip激活码 2025 年 6 月 27 日
    8700
  • 【GreatSQL优化器-09】make_join_query_block

    【GreatSQL优化器-09】make_join_query_block 一、make_join_query_block介绍 GreatSQL优化器对于多张表join的连接顺序在前面的章节介绍过的best_access_path函数已经执行了,接着就是把where条件进行切割然后推给合适的表。这个过程就是由函数make_join_query_block来执…

    2025 年 1 月 16 日
    32600
  • Python中DejaVu Sans字体缺失警告的解决途径

    Python中DejaVu Sans字体缺失警示的解决方式 现象描述: 在Python中导入Excel表格进行绘图操作时,后台会出现UserWarning:UserWarning: Glyph 24335 (\N{CJK UNIFIED IDEOGRAPH-5F0F}) missing from font(s) DejaVu Sans.的报警提示。观察界面图…

    2025 年 7 月 4 日
    9200
  • 表的创建与删除:从理论到实践的全面指南

    title: 表的创建与删除:从理论到实践的全面指南date: 2025/1/1updated: 2025/1/1author: cmdragon excerpt:表是关系数据库的基本存储结构,承载着核心数据及其关联关系。在数据库设计与管理中,表的创建与删除是至关重要的操作,它直接影响数据库的结构、数据的完整性以及查询的性能。 categories: 前端开…

    2025 年 1 月 6 日
    35600
  • 2025年最新DataGrip永久破解教程(附激活码/注册码)🔥

    适用于JetBrains全家桶(IDEA/PyCharm/DataGrip/Goland等)的终极破解方案✨ 先给大家看看最新破解成果👉 有效期直接拉到2099年,简直不要太爽!🎉 下面就用最详细的图文教程,手把手教你搞定DataGrip永久激活!💪 这个方法同样适用于旧版本哦~ 第一步:下载官方安装包📥 还没安装的小伙伴看这里:1. 访问官网 https:…

    2025 年 5 月 19 日
    31900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信