首页 > 数据库 > 数据库开发技术 > MySQL优化筑基之掌握MySQL的架构体系

前言
mysql优化是java面试中的重点项目,几乎在每一场java面试中都会被问到一些和mysql优化相关的题,所以从今天起耀哥想和大家分享一套mysql的优化课程,也许有些同学会纳闷,mysql的优化课程为什么开篇就讲【MySQL的架构体系】呢?我们见到了太多单纯讲优化经验的文章,这些文章中提到的技巧确实能解决一些燃眉之急,可是优化过后,我们是否真的理解了为什么要这样优化呢?掌握MySQL的结构体系,能够让我们知其然,又能知其所以然。以下引用了一位大神的话,和大家共勉。
看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题
关注Java架构栈,干货天天都不断哦!
一. MYSQL的架构体系图
首先耀哥手绘了一张MySQL的体系架构图,让同学们对完整的MySQL体系架构有一个整体认识

二. 分层介绍各模块的作用
从上图中我们可以很清楚的发现MySQL的体系架构分为:服务层,引擎层,存储层 三层。
接下来耀哥将大致介绍每一层的作用,为我们日后学习MySQL优化筑基。
2.1 服务层
连接池:主要负责用户连接上mysql服务器的工作。
用户名和密码的认证;
权限的控制;
线程的重用和限制,可以起到保护数据库服务器不至于被海量 的连接拖垮,造成OOM。
查询缓存: 提升查询效率。
缓存的数据以 key-value的形式保存,key就是查询语句;
由于数据频繁失效弊大于利,MySQL8.0已经把这一块废弃;
解析器: 对sql命令做解析。
语法分析:分析sql语法是否正确。
词法分析:识别出sql语句的表名 列名,视图等。
优化器:sql语句执行前进行优化 包括【索引选择,join顺序调整等】。
执行器:操作引擎,返回结果。
2.2 引擎层
存储引擎概念就是指mysql数据文件的存储方式
包含【存储机制,索引和锁的水平】等信息MySQL支持多种存储引擎(数据存储方式)包含【InnoDB、MyISAM、Memory】等。MySQL的核心就是存储引擎。
2.3 物理文件存储层
存储层主要存储系统的物理文件,并完成和引擎层的交互。物理文件包含以下三类:日志文件:包含对数据做修改的 Binary log 和记录慢查询的 Slow Query log数据文件:包含表结构定义文件,数据文件,索引文件等系统配置文件:包含/etc/my.cnf等
四. 结语
正确的了解MySQL的体系结构之后,那么恭喜各位同学,我们已经为学习MySQL优化顺利筑基了,下一篇文章。耀哥将和大家一起分析一道经典的MySQL面试题【一条sql语句执行的过程】,敬请大家期待。
扫码咨询了解课程详情,获取课程配套资料!

扫码或者点击文末左下角【阅读原文】快速进入学习!

点击【阅读原文】,免费开始学习MySQL线程视频课程!
原文作者:Java架构栈;如有侵权,请联系管理员删除。