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

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.kler.cn/news/336841.html

相关文章:

  • SOMEIP_ETS_171: SD_Unicast_FindService
  • C/C++简单编译原理
  • 用java做一个简易版球球大作战
  • 4. Getter和Setter注解与lombok
  • 计算机毕业设计hadoop+spark天气预测 天气可视化 天气大数据 空气质量检测 空气质量分析 气象大数据 气象分析 大数据毕业设计 大数据毕设
  • zy91_C#中StringBuilder类以及char类
  • 虚拟机ip突然看不了了
  • 跨平台游戏的特点
  • 地图箭头方向检测系统源码分享
  • SM2无证书及隐式证书公钥机制签名和加密过程详解(二)
  • 上传文件失败,请检查阿里云配置信息:[The specified bucket is not valid.
  • 【力扣 | SQL题 | 每日四题】力扣1571, 1715, 1699, 1445, 1495, 1683
  • Spring Cloud Netflix Ribbon 负载均衡详解和案例示范
  • SQLCMD命令行工具导入数据并生成对应的日志文件
  • VGG16模型实现MNIST图像分类
  • 【Docker】04-Docker部署Java后端
  • 【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
  • Linux ssh 免密登录配置
  • 算法与数据结构--二分查找
  • Redis篇(最佳实践)(持续更新迭代)