首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
MySQL团体架构
返回列表
发新帖
MySQL团体架构
[复制链接]
发表于 2025-5-9 22:22:25
|
显示全部楼层
|
阅读模式
目次
1 客户端
2 服务端
2.1 Server层
2.1.1 连接器
2.1.2 查询缓存
2.1.3 词法器
2.1.4 优化器
2.1.5 实验器
2.2
存储
引擎层
1 客户端
● 客户端为连接MySQL服务端的工具大概驱动,比如JDCB,ODBC等等
● 用于连接现在
服务器
,并且发送需要实验的SQL
2 服务端
2.1 Server层
● 负责处理惩罚SQL语句,解析优化,缓存等
● 提供权限管理,用户认证
● 提供了各种SQL函数和
存储
过程
● 提供了复制,
备份
,规复等高级
功能
● Server层有自己的
日志
体系,binlog
日志
● binlog纪录了所有的DML(INSERT,UPDATE,DELETE)语句
● binlog只要用于复制和规复操作
2.1.1 连接器
● 负责吸收客户端的连接
● 验证是否有权限登录
● 维护连接
● 默认异连接上的客户端空闲8小时后会被服务端自动断开
连策应该留意的问题
● 频繁创建和关闭连接可能会对
性能
产生负面影响,通常用连接池来管理
数据库
连接
● 利用长连接时,有可能会因为产时间运行导致MySQL服务端内存占用高未开释问题,可实验RESET CONNECTION下令重置mysql连接开释内存(当地利用MySQL8实验下令报错)
2.1.2 查询缓存
● MySQL5.7
版本
,查询时先查询缓存此语句是否实验过
● 之前实验的SQL语句会作为key,查询结果作为value
存储
在查询缓冲中
● 假如命中缓存,将直接返回查询结构
● 假如未命中,才真正实验查询逻辑
相干参数
● query_cache_size:用于缓存巨细
● query_cache_type:设置利用缓存的场景
○ 0(OFF):不利用query cache
○ 1(ON):利用query cache
○ 2(DEMOND):查询时利用sql_cache参数才利用query cache
● MySQL8中去除了查询缓存机制
● 因为对于更新频发的表来说,缓存命中率会非常低
● 对于静态表,普遍上都会在业务层做缓存,不会利用到MySQL缓存数据
2.1.3 词法器
● 若查询缓存未命中,则会实验分析器来分析sql语句是否正当,主要进行词法分析和语法分析两个阶段
● 词法分析:
○ 主要负责从SQL语句中提取关键字,比如表名,字段名等等
○ 词法分析阶段从information_schema库中获取表结构信息
● 语法分析
○ 判断输入的语句是否满足MySQL语法
○ 假如语法错误,就会返回错误提示
● 在分析阶段也会对
数据库
的表级权限和
数据库
权限进行验证
2.1.4 优化器
● 颠末了分析器,若语法精确,则会进入优化器
● 优化器的作用是查询重写,选择最佳实验路径,生成实验筹划
● 查询重写:对原始的查询SQL进行重写,比如将子查询转换为join连接等
● 选择最佳实验路径:基于统计信息,选择利用哪个索引,确定表的连接顺序以及是否利用临时表,文件排序等策略
● 生成实验筹划:基于以上分析,生成SQL实验筹划,详细描述了怎样从存储引擎获取数据,进行过滤,排序和聚合等操作
2.1.5 实验器
● MySQL通过分析器知道了你要做什么
● 通过优化器知道了该怎么做
● 通过实验器开始实验语句
打开表的时间,实验器就会根据标的引擎界说,去利用这个引擎提供的接口
● 调用引擎接口取这个表的第一行,判断是否满足条件,假如不是则跳过,假如是则将这行存在结果集中
● 调用引擎接口获取下一行,重复雷同的判断逻辑,知道取到这个表的最后一行
● 实验器将上述遍历过程中以是后满足条件的行构成纪录集作为结果返回给客户端
2.2 存储引擎层
● 负责数据的存储和检索
● MySQL支持多种存储引擎,比如InnoDB,MyISAM,Memory等等
● InnoDB是MySQL默认的存储引擎,支持事件,行级锁以及外键约束
● InnoDB有自己的
日志
体系,redo log(重做日志)和undo log(打消日志)
● redo log用于包管事件的长期性
● undo log用于支持事件的原子性和多
版本
并发控制(MVCC)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
忿忿的泥巴坨
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表