sql查询语句如何执行

MySQL 可以分为 Server 层和存储引擎层两部分。

 

 

查询缓存:

Mysql拿到一个查询请求之后,会先查询缓存,之前执行过的语句及结果可能会以Key-Value的形式被存在缓存中,Key是查询语句,如果存在直接返回,如果没有再执行后面的流程

查询缓存失效非常频繁,只要对表有更新,表上的所有缓存都会被清空.注意Mysql8.0移除了查询缓存整个功能。

分析器:

提取关键字进行语法分析,“You have an error in your SQL syntax”就是从这儿抛出去的

优化器:

经过分析器之后,Mysql就知道你要做什么了,在这儿就进行索引的选择,连表查询时,决定连接顺序等等优化sql语句

执行器

优化器之后知道了该怎么做,执行器就开始执行语句,先判断有无权限,有权限继续执行语句,调用存储引擎获取数据

posted @ 2019-03-03 13:07  白露非霜  阅读(775)  评论(0编辑  收藏  举报
访问量