编程知识 cdmana.com

Mysql基本架构

image

连接器

连接器负责跟客户端建立连接,获取权限,维持和管理连接

1.用户密码验证
2.查询权限信息,分配相应权限
3.可以使用show processlist查看现在的连接
4.如果太长时间没有使用,就会自动断开,通过wait_timeout控制,默认8小时

连接可以分为长连接和短连接

查询缓存

当执行查询语句的时候,会先去查询缓存中查看结果,之前执行过的sql语句及其结果以key-value的形式存储在缓存中,如果能找到则直接返回,如果找不到,就继续执行后续的阶段

但是不推荐使用查询缓存

1.查询缓存的失效比较频繁,只要表更新,缓存就会清空
2.缓存对应更新的数据命中率比较低

分析器

1.词法分析:Mysql需要把输入的字符串进行识别每个部分代表什么意思。比如:把字符串T识别为表名T,把字符串ID识别为列名ID。
2.语法分析:根据语法规则这条sql是否满足Mysql语法,如果不符合就会报错。

优化器

1.在具体执行sql语句之前,要先进行优化器的处理,比如:当表中有多个索引的时候,决定用哪个索引,当sql语句需要做多表关联时,决定表的链接顺序。
2.不同的执行方式对sql语句的执行效率影响很大
RBO:基于规则的优化
CBO:基于成本的优化

执行器

操作引擎,返回结果

存储引擎

存储数据,提供读写接口
image

版权声明
本文为[MackingJay]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000038642450

Scroll to Top