登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
安全
›
MySQL 01 基础架构:一条SQL查询语句是如何执行的? ...
MySQL 01 基础架构:一条SQL查询语句是如何执行的?
[ 复制链接 ]
庾签
2025-9-25 21:11:29
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
比如执行一条查询语句:
select * from T where ID=10;
复制代码
首先给出MySQL的基本架构示意图,从中也可以看到执行过程:
基本结构分为两部分:
Server层。里面包含连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL大多数核心服务功能,以及所有内置函数。
存储引擎层。负责数据存储和提取,是插件式的,支持多种存储引擎。目前MySQL默认存储引擎为InnoDB。
再以前面的查询语句为例,来看具体的执行流程:
1. 连接器
连接器负责跟客户端建立连接、获取权限、维持和管理连接。
当用户在客户端输入连接命令和密码,连接器会开始认证身份。
如果用户名或密码错误,会收到一个Access denied for user错误,然后客户端程序结束执行。
如果认证通过,连接器会在权限表中查出用户拥有的权限,之后该连接里的权限判断逻辑仅依赖于此时读到的权限。这也意味着,如果之后修改权限,不会影响
已存在的
连接的权限。
连接完成后,如果没有后续动作,连接会处于空闲状态,到一定时间会自动断开连接。这个时间默认为8小时。如果连接断开,客户端再次发送请求,就会收到错误提醒。
数据库的连接分为两种:
长连接:连接成功后,如果客户端持续有请求,则一直使用同一个连接。
短连接:每次执行很少的几次查询就断开连接,下次查询再重新建立一个。
由于建立连接过程比较复杂,建议
尽量使用长连接
。
但长连接很多的情况下,由于MySQL执行过程使用的内存管理在连接对象里,会导致MySQL内存占用大幅增长,甚至因为太大被系统强制杀掉,造成MySQL异常重启。
对于该问题,考虑两个解决方案:
定期断开长连接。使用一段时间后,或程序里判断执行过一个大查询后,断开该连接,之后要查询再重连。
在MySQL 5.7及之后,执行完大查询后,可以执行mysql_reset_connection来重新初始化连接资源,该语句会将连接恢复到刚创建完时的状态,而不需要重连和重新权限验证。
2. 查询缓存
执行过的查询可能以key-value形式缓存起来,其中key是查询语句,value是查询结果。
如果查询能在缓存中找到,那么就可以直接返回结果给客户端。如果不在缓存中,则继续后面的执行阶段,且执行完成后会将结果存入缓存。
但查询缓存往往
弊大于利
。因为查询缓存失效很频繁,只要在一张表里做一次更新,这张表的所有查询缓存都会被清空,所以更新多的数据库中查询缓存命中率非常低。从MySQL 8.0开始,已经没有查询缓存了。
3. 分析器
分析器先做
词法分析
,MySQL会从SQL语句识别出select关键字、把T识别成表名、把ID识别成列名。
然后做
语法分析
,会判断该语句是否满足语法。比如表名或列名是否有问题。
4. 优化器
优化器是在表中有多个索引时,决定使用哪个索引;或在语句有多表JOIN时,决定各表连接顺序。
5. 执行器
执行器会先判断用户对表有没有执行查询的权限,如果没有则返回错误,如果有则打开表继续执行。
打开表时,执行器会根据表的引擎,去使用这个引擎提供的接口。
比如前面的查询语句,执行器的流程为:
调用InnoDB接口取表的第一行,判断ID是否为10,不是则跳过,是则将结果存在结果集。
调用引擎接口取“下一行”,重复相同判断逻辑,直至最后一行。
执行器将结果集返回给客户端。
这里“下一行”取引号,代表着如果有索引就不是简单的下一行了。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
MySQL
基础
架构
一条
SQL
相关帖子
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
7
锟及
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
1
5
表弊捞
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
5
呼延含玉
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
5
闻人莹华
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
2
6
轧岔
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
6
哎禹供
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
7
旌磅箱
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
5
些耨努
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
8
吕梓美
2026-04-03
安全
SpringCloud进阶--MySQL主从复制、分库分表、读写分离的实现
0
6
炳裘垦
2026-04-03
回复
(27)
告陕无
2025-12-11 07:01:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
甘子萱
2025-12-17 04:49:15
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
慎气
2025-12-25 05:50:40
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
洪思思
2026-1-21 01:33:47
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
麓吆
2026-1-22 12:31:32
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
蓝娅萍
2026-1-23 09:49:18
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
晁红叶
2026-1-24 06:30:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,辛苦了
肿圬后
2026-1-26 09:15:48
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
热心回复!
摹熹
2026-1-29 05:23:44
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个有用。
酝垓
2026-2-5 04:31:20
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
左丘纨
2026-2-5 15:49:42
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
陈兰芳
2026-2-7 10:20:01
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
很好很强大 我过来先占个楼 待编辑
翳舀
2026-2-8 00:06:32
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
颛孙中
2026-2-8 03:24:58
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
茅断卉
2026-2-9 09:28:44
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
喳谍
2026-2-10 00:02:36
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
汲佩杉
2026-2-10 17:24:37
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢楼主提供!
懵径
2026-2-11 02:37:39
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
峰埋姚
2026-2-11 07:16:17
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
东西不错很实用谢谢分享
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
庾签
2026-2-11 07:16:17
关注
0
粉丝关注
30
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9528
6
韶又彤
9910
7
荪俗
9018
8
宋子
9874
9
蓬森莉
9870
10
俞瑛瑶
10000
查看更多
今日好文热榜
140
Kotlin协程实战:比Java线程更优雅的并发编
164
【学习笔记】重链剖分
687
Fedora 43物理机部署复盘
436
读2025世界前沿技术发展报告31海洋防务
544
Python变量作用域与命名空间详解:从LEGB到
121
AI 输出 Token 优化:文言文极简模式的实践
249
龙芯2k0300 - 走马观碑组编码器驱动移植
914
AI元人文:大儒家观
435
【赵渝强老师】崖山数据库的还原数据
426
pgbouncer连接池设置与压力测试的最大连接
672
pgbouncer连接池设置与压力测试的最大连接
892
.NET 8 性能优化实战:让你的应用起飞
303
鱼皮 AI 导航网站,突然起飞了!
930
网页端3D编程小实验-一种多人自走棋游戏原
740
pgbouncer连接池设置与压力测试的最大连接
856
基于 Irrlicht 和 WASAPI 的 Simple Audio
559
pgbouncer连接池设置与压力测试的最大连接
688
pgbouncer连接池设置与压力测试的最大连接
590
pgbouncer连接池设置与压力测试的最大连接
542
pgbouncer连接池设置与压力测试的最大连接