美文网首页
SQL执行顺序

SQL执行顺序

作者: Lnstark | 来源:发表于2021-01-03 23:02 被阅读0次

当向MySQL发送一个请求时,MySQL做了什么:

  1. 客户端发送一条查询给服务器。
  2. 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。
  3. 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划
  4. MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询
  5. 将结果返回给客户端。

SELECT语句 - 语法顺序:

  • FROM <表名> # 选取表,将多个表数据通过笛卡尔积变成一个表。

  • JOIN<join, left join, right join...> <join表> # 指定join,用于添加数据到on之后的虚表中,例如left join会将左表的剩余数据添加到虚表中

  • ON <筛选条件> # 对笛卡尔积的虚表进行筛选

  • WHERE <where条件> # 对上述虚表进行筛选

  • GROUP BY <分组条件> # 分组 <SUM()等聚合函数> # 用于having子句进行判断,在书写上这类聚合函数是写在having判断里面的

  • HAVING <分组筛选> # 对分组后的结果进行聚合筛选

  • SELECT <返回数据列表> # 返回的单列必须在group by子句中,聚合函数除外

  • DISTINCT 数据除重

  • ORDER BY <排序条件> # 排序

  • LIMIT <行数限制>

参考资料
《高性能MySQL》(第3版)
5分钟快速掌握阿里内部MySQL性能优化的核心技术!

相关文章

网友评论

      本文标题:SQL执行顺序

      本文链接:https://www.haomeiwen.com/subject/mywpoktx.html