连接器
连接器负责跟客户端建立连接,获取权限,维持和管理连接
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:基于成本的优化
执行器
操作引擎,返回结果
存储引擎
存储数据,提供读写接口
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。