MySQL逻辑架构

MySQL逻辑架构

  • 1. MySQL逻辑架构
    • 1.1 连接层
    • 1.2 服务层
    • 1.3 引擎层
  • 2. SQL执行流程
    • 2.1 SQL执行流程
    • 2.2 查看SQL执行流程
    • 2.3 SQL语法顺序

1. MySQL逻辑架构

  • 分为Connectors层、MySQL服务器对应架构、存储层;
  • MySQL服务器对应架构分为连接层、服务层、引擎层,构成三层结构;
    在这里插入图片描述
    在这里插入图片描述

1.1 连接层

  • 用于与客户端建立连接,验证用户传入的用户名、密码信息是否正确,如果信息正确则查询权限表并为该用户关联相关权限;
  • 连接层包括TCP连接池、线程池,TCP连接池用于与客户端建立连接,而线程池是为了连接建立成功后进行SQL操作;
    在这里插入图片描述

1.2 服务层

  • SQL接口:用于接收客户端发送的SQL语句,返回查询结果;

  • 解析器:对SQL语句进行解析,包括词法分析、语法分析等操作,生成语法树;
    在这里插入图片描述
    在这里插入图片描述

  • 优化器:对SQL语法树进行优化,生成执行计划;
    在这里插入图片描述

  • 查询缓存组件:以键值对形式缓存之前的查询结果,用于提升查询效率,但其实没什么用处,MySQL8.0已经删除该组件;

1.3 引擎层

  • 真正用于对文件系统进行数据读取和存储的结构;

2. SQL执行流程

2.1 SQL执行流程

  • 1)客户端与MySQL服务器建立连接,包括TCP连接的建立、用户名密码信息的验证以及该用户对应权限信息的查询绑定;
  • 2)客户端发送SQL查询语句,MySQL服务器接收SQL语句,然后查询缓存,如果查询到直接返回查询数据,否则进入第3)步;
  • 3)SQL语句进入解析器,进行词法分析、语法分析,如果SQL语句存在问题则进行报错,不再进行后续操作;如果SQL没有问题,则生成对应语法树,并进入第4)步;
  • 4)语法树送入优化器,对SQL语句执行顺序等进行优化,生成执行计划;
  • 5)执行器根据执行计划,通过引擎层在文件系统中查询数据,并将查询结果进行如下操作:1)放入查询缓存组件;2)通过SQL接口将结果返回给客户端;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2 查看SQL执行流程

  • 1)使用 show variables like 'profiling'确认profiling 是否开启:默认profiling是关闭的
    在这里插入图片描述
  • 2)通过set pofiling=1临时开启profiling;
  • 3)执行SQL;
  • 4)show profiles可查看当前会话近期执行的所有SQL;

在这里插入图片描述

  • 5)show profile for query query_id可查看指定id的SQL语句的执行计划;

在这里插入图片描述

2.3 SQL语法顺序

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15165.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ系列(26)--RabbitMQ实现高可用负载均衡

前言:我们以往只能连接一个指定的队列,不能自由地连接其他的队列,当我们连接的那个指定队列宕机了,生产者和消费者都没办法往队列发送消息和消费消息,而且生产者和消费者也不能自动的连接到其他正常运行的队列&#xf…

sqlite维护命令复习学习

前面已经看了一些sqlite命令,例如查看表名,查看表结构等;下面继续看一下; 查看全部表名; 查看单个或全部的表结构; 输出表结构和数据; 使用.output 把查询结果定向到1.txt; 重新定向…

【JavaEE初阶】JavaScript(WebAPI)

文章目录 1.WebAPI背景知识1.1什么是WebAPI1.2什么是API 2.DOM基本概念2.1什么是DOM2.2常用的DOMAPI2.2.1.选中页面元素2.2.2操作元素的属性1. 事件概念2.获取/修改元素内容3. 获取/修改元素属性4.获取/修改表单元素属性5.获取修改样式属性 2.2.3.操作页面节点1.新增节点2.删除…

【Linux】线程

目录 一、Linux线程概念 二、线程的特性 1、线程的优点 2、线程的缺点 3、线程异常 4、线程用途 三、进程与线程 四、Linux线程控制 1、创建线程 2、线程退出 3、等待线程 4、线程取消 5、其他接口 5.1、获取自己的线程id 6、线程分离 五、线程库 六、线程互斥…

Hcip第四次作业

要求: 1.如图连接,合理规划IP地址,所有路由器各自创建一个loopback接口 2.R1再创建三个接口IP地址为201.1.1.1/24、201.1.2.1/24、201.1.3.1/24 R5再创建三个接口IP地址为202.1.1.1/24、202.1.2.1/24、202.1.3.1/24 R7再创建三个接口IP地址为…

使用kubeshpere创建k8s容器日志系统grafana-loki

k8s日志聚合平台grafana-loki,可以统一查看所有容器的日志运行。 效果: 使用kubeshpere创建loki应用十分的方便,减少了很多操作,易用的同时也实用,k8s不再是精通人员才能使用的编排系统。 1、在企业空间中&#xff0…

Mongodb-5.0.18-zip下载与安装

1.下载地址 Download MongoDB Community Server | MongoDB 2.创建一个文件夹和master.cfg的文件 说明:目的是让mongodb存放数据库的位置在mongodb文件里面。 2.1创建名为mongodb的文件夹 2.2master.cfg 说明:在mongodb5.0.18目录下创建master.cfg。 …

微服务 02-rabbitmq在springboot中如何使用(上篇)

目录 前言: 上文传送 -> 安装rabbitmq传送门: -> rabbitmq使用出现问题解决传送门: 1. rabbitmq的六大模式: 1.1 简单模式: (一对一) -> 业务场景: 1.2 工作模式: (一对多) -> 业务场景: 1.3 发布与订阅模式: (广播) 1.4 路由模式: -> 业务场景 …

OpenCV 入门教程:图像读取和显示

OpenCV 入门教程:图像读取和显示 导语一、图像读取1.1、导入 OpenCV 库1.2、读取图像文件1.3、图像读取的返回值 二、图像显示2.1、创建窗口2.2、图像显示2.3、等待按键2.4、关闭窗口 三、示例应用总结 导语 在计算机视觉和图像处理领域,读取和显示图像…

《零基础学PIC单片机》目录

《零基础学PIC单片机》目录 1.《零基础学PIC单片机》,作者:赵化启 1.1芯片架构和指令 芯片架构和指令需要较多时间消化。 PIC单片机系统结构,讲解各模块的结构和功能;PIC汇编指令 1.2具有参考价值的内容 第3章:电…

Docker开启远程端口访问2375

开启方法&#xff1a; 1、修改/etc/default/docker下的配置 cat >> /etc/default/docker <<EOF DOCKER_OPTS"-H tcp://0.0.0.0:2375" EOF systemctl restart docker 2、修改/usr/lib/systemd/system/docker.service配置 cat >> /usr/lib/systemd/s…

尚硅谷React学习笔记(上)

目录 一、React入门 1.1、React简介 为什么要学&#xff1f; React的特点 1.2、React的基本使用 Hello React案例 创建虚拟DOM的两种方式 虚拟DOM与真实DOM 1.3、React JSX 语法规则 JSX小练习 1.4、模块与组件化的理解 模块 组件 模块化 组件化 二、React面向…