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

mysql语句执行过程

具体流程如下:


1】当客户端的SOL发送到MySQL时,首先是到达服务器层的连接器,连接器会对你此次发起的连接进行权限校验,以此来获取你这个账号拥有的权限。当你的账号或密码不正确时,会报用户错误。连接成功如果后续没有任何操作,那么这个连接就处于空闲状态,到达一定时间后它便会断开连接,这个时间一般是8小时,是由wait timeout参数控制的。
2】查询缓存(在MySQL8.0之后就被砍了)具体做法就是将一个查询语句作为键,将上一次请求的结果作为值,存储在缓存组件中,当同样的语句来查询的时候即可立马返回结果,不需要经历词法、语法分析等以下的步骤。只要表有数据改动缓存就失效了,在我们常见的联机事务处理(OLTP)场景下是个鸡肋。
3】接下来就到了分析器来进行语法分析、词法分析。MySQL 会首先对你的语句进行"词法分析",来判断你的语句是什么类型以及携带什么参数等。比如:MySQL 会将输入语句的 select 提取出来,判断出这是一条查询语句、将from 后面的user 提取出来作为查询的表名、把id 提取出来作为列名等。做完这些 MVSQL 将会进行"语法分析"来判断你的语句的语法是否有误、是否满足 MSQL的语法。如果语法有问题: You have an error in yourS0L syntax;check the manual......
4】经过分析器就到了优化器,它会对你的语句进行优化判断。比如你的表中有多个索引,优化器会帮你选择使用哪个索引、你使用了 多表连接,优化器会帮你调整表的连接顺序。
5】最后会到达执行器,它先会判断你对这个用户表是否有权限查询,如果没有权限它将会拒绝本次查询,返回错误信息。如果有权限,它将会根据表的存储引擎提供的接口进行数据查询将重复遍历表的行数据,将符合条件的数据作为结果集返回给客户端。 

http://www.lryc.cn/news/456100.html

相关文章:

  • 最新版本SkyWalking【10.1.0】部署
  • WSL2 中配置桥接模式、虚拟交换机及固定 IP
  • Unite Shanghai 2024 团结引擎专场 | 团结引擎 OpenHarmony 工程剖析
  • 计算机毕业设计 基于Hadoop的智慧校园数据共享平台的设计与实现 Python毕业设计 Python毕业设计选题 Spark 大数据【附源码+安装调试】
  • 2022CCPC绵阳站VP题解报告(CGHMAE六题)
  • 代码随想录day23:贪心part1
  • 通过网页设置参数,submit还是json
  • C语言 | Leetcode C语言题解之第463题岛屿的周长
  • 逼近理论及应用精解【12】
  • LIN总线学习大全(基于CANoe和CAPL)
  • 国庆作业
  • Android OpenGLES2.0开发(四):矩阵变换和相机投影
  • 快递查询软件:实现单号识别与批量物流查询的高效工具
  • nodejs与npm版本对应表
  • Spring Boot 项目中如何使用异步任务
  • Scrum实战中遇到的问题与解决方法
  • 全面介绍 Windows 录屏工具:开启录制新篇章
  • Maven 和 NetBeans:集成与使用
  • 【系统架构设计师】目录提纲
  • 【微服务】—SpringBoot入门
  • Linux: debug: perf: report: --sort
  • like 模糊查询的底层算法
  • 【Linux实践】实验九:Shell流程控制语句
  • YOLOv8实战TT100K中国交通标志检测【数据集+YOLOv8模型+源码+PyQt5界面】
  • SQLite3
  • 我的创作纪念日一年
  • Docker基本操作命令(一)
  • PGMP-02项目集管理绩效域
  • CAN(Controller Area Network)总线的仲裁机制
  • 计算机毕业设计 | SpringBoot 房屋租赁网 租房买房卖房平台(附源码)