ITPub博客

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

MySQL优化筑基之掌握MySQL的架构体系

原创 数据库开发技术 作者:Finally_m 时间:2023-01-30 08:03:00 0 删除 编辑
点击上方蓝字关注我们

前言

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架构栈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-04-13

  • 博文量
    573
  • 访问量
    243823