MySQLD的三层结构的工作机制

MySQLD的三层结构的工作机制
连接层
客户端和服务器端建立连接,客户端发送 SQL 至服务器端
提供连接协议(TCP/IP, Socket)
用户名/密码/IP的合法性,进行授权表匹配
开启专用连接线程(接收SQL语句,返回结果),使用命令
show processlist;查看线程将语句交给下一层
SQL层
对 SQL 语句进行查询处理
接收语句
检查SQL语法(检查 SQL 拼写是否正确)和SQL_MODE
语义检查(检查 SQL 中的访问对象是否存在。比如我们在写 SELECT 语句的时候,列名写错了,系统就会提示错误。)
权限检查(看用户是否具备访问该数据的权限)
解析器进行语句解析,生成多种执行计划(解析树)
优化器通过算法(基于执行代价:CPU/IO/MEM),找到代价最低的执行计划
执行器按照优化器选择的最优执行计划,执行SQL语句,得出获取数据的方法
提供查询缓存(默认不开启)
日志记录(审计日志、通用日志、二进制日志)
存储引擎层
与数据库文件打交道,负责数据的存储和读取
根据SQL层提供的获取数据的方法,去磁盘上找到相应的数据
将找到的十六进制数据,返回SQL层,结构化成表
再由连接层线程最终展现出来
Last updated