当前位置:   article > 正文

一:sql语句查询的执行流程_一个sql语句的检索过程

一个sql语句的检索过程

mysql逻辑架构图
1.连接器:权限连接和管理验证,通过-h(ip地址) -P(端口号)-u(账号) -p(密码)登录,可以通过show processlist的结果查看

当前连接是否空闲连接,如果command列显示sleep表示空闲,可以通过设置参数wait-timeout控制连接端开,默认是8小时

2.缓存:缓存存储的数据结构是键值对,键保存sql查询语句,值保存的是结果集。连接成功后,会先判断是否命中缓冲,是就直接返回结果集,否就继续往下执行,因为如果频繁更新操作,就会造成缓存被清空,耗费巨大性能,在8.0版本后被删除,说明这个模板将被淘汰,所以不过多解释 。

3.分析器:分为词法分析以及语法分析,一条sql语句是由字符串与空格组成,词法分析会对此sql语句进行拆分,获取了select关键词mysql就知道了这条是查询语句,接下来用语法分析判断这条sql是否规范。

4.优化器:当表中有过多索引时,决定使用哪个索引;当有多表关联时,决定各个表的执行顺序。

5.执行器:开始执行时,会对这个表先判断有没执行查询的权限(这个一般是在缓存返回结果集前是判断,或是在优化器之前进行判断),如果有查询权限,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。

6.存储器:存储以及查询数据,在mysql5.5.5版本之后,默认引擎为InnoDB引擎,如果要更改引擎,可以在创建表时使用engine=Memory

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/168656?site
推荐阅读
相关标签
  

闽ICP备14008679号