mysql 一条sql语句如何执行的?
文章内容源自:极客时间-林晓彬老师-MySQL实战45讲 学习整理
在了解一条查询语句如何执行之前,需要了解下MySQL的基本架构是怎样的,如下图所示:
可以看出,MySQL主要分成Server层和存储引擎两部分
那么该条sql语句的执行过程大概是:
(1)先通过连接器建立连接,这个时候需要用户名和密码进行认证
(2)连接成功后,就去查询缓存,如果缓存命中就直接返回,否则需要继续去分析器
(3)分析器需要做词法解析,识别里面的关键字例如SELECT
等,并且判断你SQL语法是否正确
(4)经过了分析器后,优化器会对查询进行优化,例如使用那个索引等
(5)优化器执行完毕后,就需要执行器去执行啦,执行过程中还需要判断当前用户是否有查询的权限,如果有权限就调用存储引擎的接口查询数据返回即可