一、mysql架构图

二、server层
1.连接器
在执行sql之前,客户端需要对mysql建立连接,在经过经典的tcp握手建立连接后,连接器开始验证身份 ,此时需要输入用户名密码,然后登陆成功。如果此时root修改了当前用户的权限,则不会立刻生效,因为用户在建立连接的时候已经查询到了之前的权限,当用户下一次登录时才会获取到修改后的权限信息。另外,当客户端与mysql在默认的8小时没有发送请求的话,那么连接就会断开,我们可以通过url设置自动重连或者修改这个默认时间大小的配置。
2.分析器
mysql执行语句前,需要验证我们输入的sql是否正确,那么就是在分析器中完成的,mysql会对sql进行词法分析和语法分析,这两种分析是融合在一起完成的。
3.优化器
当我们的sql输入正确时,优化器会根据当前table中的索引,为我们选择合适的索引或者表的连接顺序。
4.执行器
最后就是执行的阶段,在执行之前,mysql会判断当前用户对表t的权限,如果权限不足就会报错。如果有权限,那么就使用对应的存储引擎提供的接口去查询我们所需要的数据。
本文详细介绍了MySQL的执行流程,包括连接器验证用户身份、分析器进行SQL语法验证、优化器选择最优执行计划以及执行器执行SQL的过程。同时,还解释了各组件如何协同工作以确保数据的安全性和准确性。

被折叠的 条评论
为什么被折叠?



