执行一个SQL,MySQL内部的执行过程是什么?

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 执行一个SQL,MySQL内部的执行过程是什么?

执行一个SQL,MySQL内部的执行过程是什么?如果要深入MySQL的话,那无可避免要知道其内部的一个执行流程。


在学习SQL的整个执行流程后,就可以在更高的层面去考虑问题,自然也就能更充分的去优化SQL。

来看一下吧。


SQL执行流程


  1. 首先是由客户端或者其他接口传入将要执行的SQL语句。


  1. mysql服务器接收到此条SQL,第一步就是去检查缓存模块,与我们自身设计缓存的目的一样,如果能够直接命中相应的缓存,则可以直接返回对应的缓存结果,无须进行下面操作;如果没有命中,则继续往下执行。


  1. 随后,SQL语句进入解析器模块,mysql服务器针对SQL进行解析预处理操作,随后进入下一步。


  1. 经由mysql服务器预处理后,紧接着就是进入到mysql服务器的查询优化器模块查询优化器模块根据SQL生成对应的SQL执行计划。


  1. 生成出了SQL执行计划,mysql服务器会根据SQL执行计划,调用相应的API接口去执行查询;当然这里也和这张表的存储引擎有所关联,不同的存储引擎有着不同的API接口。


  1. 通过这些API接口,我们就可以真正的接触到数据了,经由API接口去查看出对应的数据结果集。


  1. 生成出了数据结果集后,就可以将其反馈给客户端了,并且还要将这个结果集记录在缓存模块中,如此就可以在一定情况下不用再执行一遍了。


综上所述,只是个简单的介绍,具体如何解析,如何预处理等等其实还有很多底层的知识,这些远比写出来的复杂,感兴趣的话,需要花一些时间去学习。


整个SQL的执行流程就是这些,这个问题其实在面试中也可能碰到,毕竟是一个全局性的知识。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
SQL 运维 关系型数据库
MySQL 运维 SQL 备忘
MySQL 运维 SQL 备忘录
46 1
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
136 1
|
19天前
|
SQL 关系型数据库 MySQL
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
MySql5.6版本开启慢SQL功能-本次采用永久生效方式
33 0
|
19天前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
30 0
|
1月前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
45 0
|
1月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
14 0
|
1月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
84 0
|
11月前
|
SQL 存储 关系型数据库
MySQL下使用SQL命令进行表结构与数据复制实践
MySQL下使用SQL命令进行表结构与数据复制实践
154 0
|
SQL 关系型数据库 MySQL
MySQl数据库第八课-------SQL命令查询-------主要命脉2
MySQl数据库第八课-------SQL命令查询-------主要命脉
|
SQL 关系型数据库 MySQL
MySQl数据库第八课-------SQL命令查询-------主要命脉 1
MySQl数据库第八课-------SQL命令查询-------主要命脉
115 0