MySQL执行流程

mysql执行流程(干货)

最近也在面试,被问到了数据库优化的一些问题
废话很少说开始吧
了解MySQL优化,那么咱们就先从MySQL的执行流程开始说吧
客户端访问数据库->查询缓存(有之则直接返回)->解析(语法解析,生成解析树,处理器,生成新解析树)->查询优化器—>执行计划->查询执行引擎->返回结果
下面咱们开始讲一下每个步骤吧
一、客户端访问数据库
二、查询缓存
客户端访问以后,首先进入缓存查询数据,有的话,就直接返回,没有的话进行下一步
三、解析
进入到这一步以后,首先MySQL会经过关键字进行解析,这个过程解析器主要经过sql的语句来判断,若是没错,生成一个解析树。预处理,主要就是来判断sql中的表、列等等是否存在,没错的话就会又生成一个新的解析树。
四、查询优化器
这一步主要就是sql自身执行的。一条查询会有不少的查询方式,优化器会根据查询条件找到最适合的查询方式。
MySQL主要是针对成原本进行查询的,也就是说MySQL会使用成本比较小的查询方式。
五、执行计划
这里就开始执行了
六、查询执行引擎
七、返回结果
返回执行结果而且放入到缓存中mysql