当前位置: 首页 > news >正文

Mysql——Sql的执行过程

目录

    • 一、Sql的执行过程流程图解
    • 二、Sql的执行过程流程
      • 1.2.1、建立连接
      • 1.2.2、服务层(缓存、解析器、预处理器、优化器、执行器)
        • 1.2.2.1、缓存
        • 1.2.2.2、解析器
        • 1.2.2.3、预处理器
        • 1.2.2.4、优化器
        • 1.2.2.5、执行器
      • 1.2.3、引擎层

一、Sql的执行过程流程图解

  • Sql的执行过程

    在这里插入图片描述

二、Sql的执行过程流程

1.2.1、建立连接

  • 当客户端执行一条sql,跟远程数据库建立连接,并验证用户名及密码,如果验证通过,执行到MySql的服务层;

1.2.2、服务层(缓存、解析器、预处理器、优化器、执行器)

1.2.2.1、缓存
  • MySql的服务层通过缓存来进行查询,缓存中的数据是以key、value方式进行存储(key就是当前的SQL语句,alue就是对应的数据)
  • 注:在MySql5.7之后,缓存默认已经不开启,并且在MySql8之后就完全弃用掉,因为通常存在缓存当中的数据是一些不太会变的数据,但是在数据库当中的数据通常都是变化比较多的,导致缓存没办法命中,从而使这一块的逻辑性能浪费掉了。所以MySql把缓存交给了应用层,数据库层不做缓存处理。
1.2.2.2、解析器
  • 如果没有缓存,会经过解析器,解析器主要解析sql语句的语法是都正确;
1.2.2.3、预处理器
http://www.dtcms.com/a/325685.html

相关文章:

  • Windows Git Bash 常用配置
  • 设计模式笔记_结构型_门面模式
  • 2020/12 JLPT听力原文 问题一 3番
  • VTK 标签中文
  • MFC C++ 使用ODBC方式调用Oracle数据库的详细步骤
  • Go 多进程编程-socket(套接字)
  • 今日项目之线程同步操作项目
  • 生成模型实战 | MuseGAN详解与实现
  • encoder-only / decoder-only / encoder-decoder架构分析
  • 云原生应用的DevOps2(Jenkins渗透场景)
  • Spring Boot 单元测试:@SpyBean 使用教程
  • Linux生成自签名 SSL 证书(适用于测试或内部使用)
  • CI/CD渗透测试靶场
  • cesium/resium 修改子模型材质
  • [Oracle] UNPIVOT 列转行
  • MySQL 数据操作全流程:创建、读取、更新与删除实战
  • openEuler、 CentOS、Ubuntu等 Linux 系统中,Docker 常用命令总结
  • FPGA+护理:跨学科发展的探索(一)
  • SAE J2716多协议网关的硬件架构与实时协议转换机制解析
  • 三种常见的菜单路由封装方式详解
  • rust编译过程的中间表现形式如何查看,ast,hir,mir
  • Rust学习笔记(一)|Rust初体验 猜数游戏
  • Excel 实战:基因表达矩阵前处理中测序符号的快速剥离方法
  • K210人脸识别系统
  • 在Linux中部署tomcat
  • 【Redis的安装与配置】
  • 如何理解Tomcat、Servlet、Catanalina的关系
  • 从零开始的云计算生活——第四十一天,勇攀高峰,Kubernetes模块之单Master集群部署
  • 微美全息(NASDAQ:WIMI)Raft携手节点动态评估:引领联盟链高性能共识新潮流
  • 为 Promethus 配置https访问