跳转至

6. mysqld服务程序构成

也是sql语句执行原理、过程

1. 连接层

功能

1.tcp/ip或者socket的连接方式
2.验证用户名密码功能
3.连接线程:接收SQL语句,返回执行结果

2. SQL层

功能

1.语法检查模块,检查上层发过来的SQL语句,进行语法检查
2.权限检查模块,检测当前登录用户是否有权限操作数据库对象
3.语义检查模块,识别语句种类(DDL、DCL、DML、DQL)
4.解析器,解析出SQL语句所有可能的执行方式(即执行计划)
5.优化器,基于执行代价(系统资源(cpu/mem/io)的消耗作为维度)。管理员可以通过间接的方法干预优化器的选择
6.执行器,按照优化器选择的“最优”(mysql认为的最优)的执行计划,执行SQL语句。得出结论:某某磁盘的某某位置,发送给存储引擎层

7.提供查询缓存:有局限性。一般会用redis产品来替代
8.记录查询日志

3. 存储引擎层

功能

1.和“磁盘”(文件系统)打交道的层
2.根据SQL层执行的结果,去磁盘上找到对应的数据,结构化成表的模式,返回给用户。

最后更新: 2022-02-20 08:44:07