论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Mysql
›
01 MySQL的基本架构
01 MySQL的基本架构
一给
金牌会员
|
2024-5-1 19:49:29
|
显示全部楼层
|
阅读模式
楼主
主题
994
|
帖子
994
|
积分
2982
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
前言:
记录对林晓斌老师的《MySQL 实战 45 讲》课程学习路程。
01 MySQL的基本架构
[img=70%,auto]https://static001.geekbang.org/resource/image/0d/d9/0d2070e8f84c4801adbfa03bda1f98d9.png?wh=1920*1440[/img] MySQL的逻辑架构图MySQL 分为 Server 层和存储引擎层两部分。
Server 层
功能:实现所有
跨存储引擎
的功能,比如存储过程、触发器、视图等。
连接器、查询缓存、分析器、优化器、执行器等,以及所有的内置函数(如日期、时间、数学和加密函数等)。
连接器
负责跟客户端建立连接、获取权限、维持和管理连接。
mysql -h$ip -P$port -u$user -p
复制代码
长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接。
短连接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个。
若全部使用长连接后,发现有些时候 MySQL 占用内存涨得特别快,从现象看就是 MySQL 异常重启。
可考虑以下两种方案解决:
定期断开长连接
MySQL 5.7 或更新版本,可以在每次执行一个比较大的操作后,通过执行
mysql_reset_connection
来重新初始化连接资源。
这个过程不需要
重连和重新做权限验证
,但是会将
连接恢复到刚刚创建完时的状态
。
查询缓存
MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。
之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中。key 是查询的语句,value 是查询的结果。
如果查询能够直接在这个缓存中找到 key,那么这个 value 就会被直接返回给客户端。
大多数情况下
不要
使用查询缓存
。
因为查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。
需要注意的是,MySQL 8.0 版本直接将查询缓存的整块功能删掉了。
分析器
对 SQL 语句做解析,MySQL 需要识别出里面的字符串分别是什么,代表什么。
先会做“词法分析“(识别是什么语句,比如通过select关键字,识别出这是查询语句),
然后做“语法分析”(判断输入 SQL 语句是否满足 MySQL 语法)。
一般语法错误会提示第一个出现错误的位置,所以你要关注的是紧接
“use near”
的内容。
优化器
优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。
执行器
MySQL
通过分析器知道了你要做什么,通过优化器知道了该怎么做
,于是就进入了执行器阶段,开始执行语句。
开始执行的时候,要先判断一下对这个表 T
有没有执行查询的权限
。
如果有权限,就打开表继续执行。打开表的时候,
执行器就会根据表的引擎定义,去使用这个引擎提供的接口
。
存储引擎层
负责数据的存储和提取
。其架构模式是插件式的。
引擎类型默认InnoDB。
不同的存储引擎共用一个 Server 层。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
一给
金牌会员
这个人很懒什么都没写!
楼主热帖
手把手教你如何使用kali破解wifi密码( ...
3.2操作系统(基本分页存储管理的基本 ...
C++面试八股文:std::array如何实现编 ...
嵌入式 Linux 内核驱动开发【The first ...
零基础入门 Java 后端开发,有哪些值得 ...
你真的了解二叉树吗?(上篇) ...
Wireshark学习笔记(一)常用功能案例 ...
Kubernetes(K8S) Deployment 升级和回 ...
当“超融合”邂逅“奥 ...
上古神兵,先天至宝,Win11平台安装和配 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
Oracle
虚拟化与私有云
MES
移动端开发
DevOps与敏捷开发
分布式数据库
快速回复
返回顶部
返回列表