MySql结构与执行流程

简介:MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

目录

MySql结构

一、连接端

二、服务层

三、存储引擎层

四、系统文件层

SQL执行流程

 MySQL 整个查询执行过程,可分为五个步骤 :

一、客户端/服务端通信协议

二、查询缓存

三、查询优化

四、查询执行引擎

五、返回结果给客户端


MySql结构

MySQL 由连接池、SQL 接口、解析器、优化器、缓存、存储引擎等组成,可以分为两层,即 MySQL Server 层(包括连接层和 SQL 层)与存储引擎层。

 注:标识1为连接层,标识2为SQL层

一、连接端

        连接端可以将其理解为各种客户端、应用服务,主要指的是不同语言与 SQL 的交互;连接处理、授权认证、安全等功能均在这一层处理。

二、服务层

        服务层包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数),所有的跨存储引擎的功能也在这一层实现(比如:存储过程、触发器、视图等)。

  1. 连接层:客户端或者应用程序通过接口(如 ODBC、JDBC)来连接 MySQL,最先连接处理的是连接层;连接层包括通信协议、线程处理、用户名密码认证 3 部分。
    1. 通信协议负责检测客户端版本是否与服务端 兼容
    2. 线程处理是指每一个连接请求都会分配一个对应独立的线程
    3. 用户名密码认证创建的账号和 密码,以及host主机授权是否可以连接到mysql服务器
  2. SQL层:MySQL 的核心服务都是在这层实现的。主要包含权限判断、查询缓存、解析器、预处理、查询优化器、缓存和执行计划。
    1. 权限判断可以通过审核用户有没有访问某个库,某个表,或者表里某行的权限
    2. 查询缓存通过 Query Cache 进行操作,如果数据在 Query Cache 中,则直接返回结果给客户端,不必再进行查询解析、优化和执行等过程
    3. 查询解析器针对sql语句进行解析,判断语法是否正确,并生成解析器
    4. 预处理器对解析器无法解析的语义进行处理
    5. 优化器对sql语句进行改写和相应的优化(例如:对连接表重排序,对外连接转内连接,代数等价 法则,计算和减少常量表达式,自查询优化,早期终结,相等传递等),并生成最优的执行计划,然 后就可以调用程序的API接口,通过存储引擎层访问数据
SQL层的详细说明
Management Services & Utilities  MySQL 的系统管理和控制工具,包括备份恢复、MySQL 复制、集群等。
SQL Interface(SQL 接口) 用来接收用户的 SQL 命令,返回用户需要查询的结果。例如 SELECT FROM 就是调用 SQL Interface。
Parser(查询解析器) 在 SQL 命令传递到解析器的时候会被解析器验证和解析,以便 MySQL 优化器可以识别的数据结构或返回 SQL 语句的错误。
Optimizer(查询优化器)

SQL 语句在查询之前会使用查询优化器对查询进行优化,同时验证用户是否有权限进行查询,缓存中是否有可用的最新数据。它使用“选取-投影-连接”策略进行查询。

例如 SELECT id, name FROM student WHERE gender = "女";

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值