面试刷题mysql1:一条sql语句是如何经过mysql的体系结构的?
mysql执行一条sql查询语句背后发生了什么呢?
我是李福春,我在准备面试,今天的题目是:
mysql的体系结构是怎样的?一条sql语句在mysql的体系结构中经历了什么?
答:
mysql体系结构
mysql的题解结构可以分成3个部分。列举如下:
mysql-client: 比如一个命令行,或者使用java的JDBC发送sql语句
mysql-server: 分为5个部分
连接器 (管理连接权限认证)
查询缓存 (命中则缓存起来)
分析器 (词法 语法分析)
优化器 (执行计划生成,索引选择)
执行器 (操作,返回结果)
mysql-存储引擎: 负责存储数据,提供读写接口(建表的时候指定MyISAM,InnoDB , Memory)
一条sql语句的执行过程
一条sql语句在mysql体系中的流转过程:
1,连接器: 首先打开命令行,指令:mysql -h{port} -u${user} -p ,输入密码。
使用连接器连接服务端; 连接成功之后,权限修改不会影响当前连接,连接的有效期默认是8个小时;
连接之后,执行过程中使用内存会持续增加,应该定时重置连接状态,防止oom;
2,查询缓存:如果查询比较频繁,按照key,value的方式放入缓存,命中缓存则直接返回;
如果更新比较频繁,建议不要使用查询缓存,query_cache_type=demand ,然后如果需要,可以在select后面带上 SQL_CACHE ; mysql8.0之后移除了查询缓存;
3,分析器:解析语法和词法,如果语法错误,会直接给出提示;
4,优化器:比如join语句执行方法的逻辑,如何选择索引等;
5, 执行器:核对执行权限,调用存储引擎的接口,按照语法循环执行,返回结果集。 可以观察 row_examined ,引擎扫描行数。
小结
本节介绍了mysql的体系结构。
然后跟踪了一条查询sql在体系结构中流转过程。
原创不易,转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架