mysqld程序结构介绍
说明:mysqld程序结构模型就是------> SQL语句的执行过程
· 分为三大部分:连接层,SQL层,存储引擎层
#1、连接层功能
(1).TCP/IP或者Socket的连接方式
(2).验证用户名密码功能
(3).连接线程:接收SQL语句、返回执行结果
#2、SQL层功能
(1).语法检查模块
检查上层发过来的SQL,进行语法检查
(2).权限检查模块
检测当前登录用户是否有权限操作数据库对象
(3).语意检查模块
识别语句种类
(4).解析器
解析出SQL语句所有可能的执行方式,这些方式呗称之为“执行计划”
(5).优化器
基于执行代价(系统资源消耗作为判断维度:如CPU/mem/IO)
说明:管理员可以通过减价的方法干预优化器的选择
(6).执行器
安装优化器选择的“最优”的执行计划,执行SQL语句,得出结论,把结论发送给存储引擎层
*****************************************************************************
补充:
提供查询缓存
提供查询日志
*****************************************************************************
#3、存储引擎层
作用:是和“磁盘”(文件系统打交道的层次)
根据SQL的执行结果,去磁盘上找到对应的数据;并结构化成表的模式,返回给连接层,最后返回给用户