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】最后会到达执行器,它先会判断你对这个用户表是否有权限查询,如果没有权限它将会拒绝本次查询,返回错误信息。如果有权限,它将会根据表的存储引擎提供的接口进行数据查询将重复遍历表的行数据,将符合条件的数据作为结果集返回给客户端。

相关推荐
盟接之桥2 小时前
半导体供应链破局:EDI如何成为中国制造的数字通行证
大数据·运维·服务器·网络·数据库·人工智能·制造
其实防守也摸鱼2 小时前
ZLibrary 类项目合规避坑指南:从技术实现到法律风险的全景梳理
运维·服务器·数据库·安全·自动化·github·copilot
2601_967659892 小时前
2026信创深化落地期档案管理系统选型推荐:恒智科技综合档案管理系统
数据库·人工智能·科技
程序员-Benothing2 小时前
数据库的脏读、不可重复读和幻读:从面试标准答案到源码级原理
数据库·面试·职场和发展
wangchunyu1142 小时前
Elasticsearch 入门与实战:Spring Boot 3 + ES 8 从零搭建商品搜索服务
大数据·数据库·spring boot·elasticsearch
给AI剪纸的打工人3 小时前
OpenCode怎么接第三方API?自定义Provider与Responses配置实战
linux·数据库·人工智能
裕晟资质规划3 小时前
西安政务信息化项目涉密系统集成资质准入解析:甲级/乙级承接边界、等保差异与合规承接路径
大数据·运维·数据库·人工智能·安全·政务
yandong6343 小时前
redis添加到win服务
数据库·redis·缓存
我叫小米粒3 小时前
可维护的智能体协作空间:字段建模、提示约束、测试集和上线检查
数据库·aigc·agent·智能体交付
数智启示录3 小时前
Flink CDC 机制精讲(四):一条 SQLServer CDC 事件如何保持顺序 【面试宝典】
数据库·面试·sqlserver·flink