面试题——一条 sql 语句是如何经过 MySQL 的体系结构的?

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 面试题——一条 sql 语句是如何经过 MySQL 的体系结构的?

  点击上方 **好好学java **,选择 **星标 **公众号


重磅资讯、干货,第一时间送达
今日推荐:有了这 4 款工具,老板再也不怕我写烂SQL了个人原创+1博客:点击前往,查看更多

作者:李福春
来源:https://www.cnblogs.com/snidget/p/12614449.html

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在体系结构中流转过程。

原文地址:https://sihai.blog.csdn.net/article/details/109465316

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> 面试题——一条 sql 语句是如何经过 MySQL 的体系结构的?


 上一篇
一文读懂 volatile 关键字 一文读懂 volatile 关键字
  点击上方 **好好学java **,选择 **星标 **公众号 重磅资讯、干货,第一时间送达 今日推荐:有了这 4 款工具,老板再也不怕我写烂SQL了个人原创+1博客:点击前往,查看更多 作者:对弈 来源:https://www.
2021-04-04
下一篇 
Java 完美实现添加、读取和删除 Excel 批注 Java 完美实现添加、读取和删除 Excel 批注
  点击上方 **好好学java **,选择 **星标 **公众号 重磅资讯、干货,第一时间送达 今日推荐:分享一个牛逼的 Java 开源后台管理系统,不要造轮子了!个人原创+1博客:点击前往,查看更多 作者:Jazz 来源:http
2021-04-04