面试官问:请画出 MySQL 架构图!这种变态问题都能问的出来

news/2025/9/22 0:25:42/文章来源:https://www.cnblogs.com/tanggoahead/p/19104423

大家好,欢迎来到程序视点!我是你们的老朋友.安戈!

今天和一个好友聊天,说今天面试官问了一个特变态问题:画出 MySQL 架构图。结果他没全部答上来!

其实这问题,面试官是不需要要你全部答出来的。主要看你掌握多少。

今天,我就和大家一起理一理这个MySQL架构体系!

image

1. 连接层(Client Layer)

  • 连接池(Connection Pool)
  • 认证/权限验证(Authentication)
  • 线程管理(Thread Handling)

2. 服务层(Server Layer)

  • SQL 接口(SQL Interface):接收 SQL 命令(DML/DDL/DCL)
  • 解析器(Parser):语法分析、词法分析 → 生成解析树
  • 优化器(Optimizer):执行计划生成(RBO/CBO)
  • 查询缓存(Query Cache)(MySQL 8.0 已移除)

3. 存储引擎层(Storage Engine Layer)

  • InnoDB(默认):事务、行锁、MVCC、聚簇索引
  • MyISAM:表锁、全文索引(MySQL 8.0+ 已逐渐淘汰)
  • Memory:内存表,临时高速存储
  • 其他引擎(Archive/CSV/NDB等)

4. 物理存储层(File System)

  • 数据文件(.ibd/.frm/.myd/.myi)
  • 日志文件(redo log/undo log/binlog)
  • 系统表空间(ibdata1)

关键特性标注

  • 缓冲池(Buffer Pool):加速数据访问(LRU 机制)
  • WAL 机制:redo log 保证 crash-safe
  • MVCC:多版本并发控制(ReadView + undo log)
  • 两阶段提交:binlog 与 redo log 一致性保障

(注:架构图需配合箭头流向,如 SQL 请求从连接层→解析→优化→存储引擎→磁盘IO)

需要手绘风格示意图还是标准组件框图?可进一步细化某部分设计原理。

最后

【程序视点】助力打工人减负,从不是说说而已!
关注【程序视点】,评论回复:`mysql`,获取 MySQL高级 - 带源码课件。也可以直接访问资源列表:docs.qq.com/doc/DUUtaa0R5SEx5a2ZY, 按需回复:`mysql`,免费领取MySQL高级带源码教程。
如果你觉得这篇教程有帮助,别忘了【点赞+收藏+关注】三连支持!
后续安戈会持续分享更多开发工具和技巧,敬请期待!如果有其他工具需求,欢迎留言讨论~ 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合

1.程序功能描述 基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合。对比速度估计误差RMSE指标,位置估计误差RMSE指标,等概率密度椭圆。 2.测试软件版本以及运行结果展示MATLAB2022A版本运…

github/网盘/公众号信息收集

(1)github信息收集 基于域名,邮箱,公司名称,备案号,个人名称,电话号码,qq号码 去百度上搜索资产,获取网站,然后在gihub上进行搜索 xxx.edu passwd 或者使用工具 http://github.com/obheda12/GitDorker/tree/…

AtCoder Regular Contest 206 (Div. 2) 部分题解

A B C D 题解AtCoder Regular Contest 206 (Div. 2) 部分题解 A - Range Replace 我们发现,若 \(a_i=a_{i+1}\) 则将操作左端点放在 \(i\) 和 \(i+1\) 是等价的,为了不重复,我们强制所有操作左端点都要放在 \(i\) 使…

Grafana 和 Openssh 高危漏洞修复

本次漏洞扫描,扫描到的高危漏洞涉及Grafana和Openssh,其中Grafana发现漏洞有(CVE-2023-3128、CVE-2022-23498、CVE-2023-4822、CVE-2024-1442),Openssh的漏洞有(CVE-2023-38408、CVE-2020-15778、CVE-2020-12062…

学习日报(补发)

时间:600min 搏客量:1 内容: 一、今日核心工作 今日的主要工作是成功在 Hadoop 集群环境中启动 Hive Metastore 服务,为后续的数据仓库操作和 HiveServer2 连接提供元数据管理支持。 二、工作执行详情 在 node1 节…

Influxdb 得模糊查询总结

InfluxDB 模糊查询完整总结与示例(修正版) 📊 查询方式全面总结(InfluxQL) 1. 精确匹配(最佳性能) -- 单值精确匹配 WHERE routername = NJ-MAIPU-1-- 多值精确匹配(使用OR) WHERE routername = NJ-MAIPU-1 …

多表关系和多表查询

多表关系和多表查询 1.0 一对多 表与表之间也存在关系,有一对一,一对多,多对多三种,比如部门表中的一个部门,对应着员工表中的多个员工 ,这就是一对多的关系,我们将多的一方称作子表,比如上面的员工表,一的一…

【反比例函数】【做题笔记】【图形存在性】题目合集

【反比例函数】【做题笔记】【图形存在性】题目合集 1.(2023 秋盐城月考) 如图,点 \(A\) 在双曲线 \(y=\frac{k}{x} \ (k \neq 0)\) 的第一象限的图象上,\(AB\) 垂直于 \(y\) 轴于点 \(B\),点 \(C\) 在 \(x\) 轴的…

20250920 嘉定江桥---江苏吴江区太湖 往返160KM骑行小记

20250920 嘉定江桥<--->江苏吴江区太湖 往返160KM骑行小记历时14小时, 完成了这次160km的骑行, 解锁新地标太湖, 也创造了我的个人单次骑行距离的纪录.从嘉定江桥出发, 沿北青公路向西骑行26KM直到尽头, 就可以出…

工作队列(Work Queues)与消息确认(Ack)

本章目标理解工作队列(竞争消费者模式)的概念和适用场景。掌握消息确认(Acknowledgment)机制,实现可靠的消息处理。学习消息持久化(Durability),防止服务器重启导致消息丢失。使用公平分发(Fair Dispatch)来…

React18新增的hook useId

useId 首先要理解SSR时,服务端和客户端的水合 服务端会生成一个HTML模版,和JS一起发给客户端,然后客户端的JS来“水合”HTML中的内容,转为可交互的组件。而官方文档中所说的“客户端组件被激活处理后的顺序可能与服…

十年架构演进史:从臃肿war包到云原生,我们终于解放了!

十年架构演进史:从臃肿war包到云原生,我们终于解放了!单体到微服务架构服务演化过程大家好,欢迎来到程序视点!我是你们的老朋友.安戈! 前言 各位技术人,不知道你们是否和我一样,每次打开一个老项目的代码仓库,…

week1作业

在 Java 中,我本学期主要遵循的编码规范如下: 类名我采用大驼峰命名法,每个单词的首字母大写,例如StudentInfo 、UserService。 方法名我采用小驼峰命名法,首单词首字母小写,其余单词首字母大写,如getStudentNa…

6-5 汇聚层

本章主要介绍汇聚层相关原理和实现1.最大汇聚层和平均汇聚层 import torch from torch import nn from d2l import torch as d2ldef pool2d(X, pool_size, mode=max):p_h, p_w = pool_sizeY = torch.zeros((X.shape[0]…

从IpadOS 26 Beta版切换成IpadOS 26 正式版

设置 - 通用 - 软件更新 - Beta版更新点击上图中的Beta版更新,进入如下图所示菜单,选择关闭返回至软件更新页面,点击IpadOS 26进行安装

2025.9.21总结

今天继续梳理已学习过的知识和学习路线。 对于已有技术,web开发,安卓开发而言。光凭借这些技术对于找到一份工作而言还是比较困难的。 而大三暑假的时候最长差不多能放出去半年的时间,也就是需要在寒假把简历打磨好…

6-4 多输入多输出通道

本章主要介绍通道多输入和多输出1.多输入通道 import torch from d2l import torch as d2l def corr2d_multi_in(X, K):# 先遍历 X 和 K 的第0个维度(通道维度),再把他们加在一起# 把所有配对得到的互相关结果逐元素…

6-6 卷积神经网络LeNet

本章主要介绍卷积神经网络LeNet的实现1.LeNet import torch from torch import nn from d2l import torch as d2lnet = nn.Sequential(nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),nn.AvgPool2d(kernel_…

5-5读写文件

本章主要介绍将训练后的数据保存到文件中1.加载和保存张量 import torch from torch import nn from torch.nn import functional as Fx = torch.arange(4) # 把 Python 对象 x 打包成字节流,原封不动地写进文件 x-fi…

6-2图像卷积

本章主要介绍二维卷积和图像卷积的计算1.二维卷积计算 import torch from torch import nn from d2l import torch as d2l定义二维卷积函数 def corr2d(X, K):计算二维互相关运算h, w = K.shapeY = torch.zeros((X.sha…