当前位置:网站首页>Mysql 45讲学习笔记(一)一条sql语句的执行
Mysql 45讲学习笔记(一)一条sql语句的执行
2022-06-22 03:33:00 【孔汤姆】
一条sql语句的执行
一.Mysql基本架构
SELECT
*
FROM
T
WHERE
ID = 10;

MySQL可以分为Server层和存储引擎层两部分
- server层包括连接器、查询缓存、分析器、执行器、内置函数(日期,时间,数字和加密函数等),所有的跨存储引擎的功能都在这一层实现,比如存储过程,触发器,视图等。
- 存储引擎层 负责数据的存储和提取:其架构模式是插件式的,支持InnoDB,MyISAM,Memory等多个存储引擎
- 最常用的引擎是InnoDB,从MySQL5.5.5版本开始默认存储引擎。
二.连接器
连接器负责与客户端建立连接,获取权限,维持和管理连接:
mysql -h$ip -P$port -u$user -p
- 用户名密码认证通过,连接器会到权限表里查出你拥有的权限
- 用户成功建立连接后,你用管理员账号对这个用户的权限做修改,也不会影响已存在连接的权限
- 当修改用户权限后,需要新建连接才会使用新的权限设置
数据库的长连接
- 长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接(推荐)
- 短连接是指每次执行完很少的几次查询就断开连接,下次查询重新建立一个
长连接缺点
- 内存占用过大:Mysql执行过程中临时使用的内存管理在连接对象里面,这些资源会在断开连接以后才释放,所以长连接积累下来,导致内存占用太大,被系统强行(OOM)
长连接内存占用过大的解决方案
- 定期断开长连接
- 执行 mysql_reset_connection重新初始化连接资源
三.查询缓存
- MYSQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这个语句
- 查询信息会以key-value对的形式,直接缓存在内存中。
- key是查询语句,value是查询结果
- 语句不在缓存中,会继续后续执行将结果回写到查询缓存中
查询缓存往往弊大于利
- 查询缓存失效频繁,任何更新修改删除操作,都会 让查询缓存失效
- MySQL8.0版本以后就没有查询缓存了
四.分析器
- 词法分析
- 语法分析
五.优化器
- 优化器是在表里面有多个索引的时候,决定使用哪个索引
- 一个语句有多表关联(join)的时候决定各个表的连接顺序
SELECT
t1.*
FROM
t1
LEFT JOIN t2 ON t2.d = 20
WHERE
t1.c = 10
优化器会判断走不走索引,选择最快的执行方式
六.执行器
MySQL通过分析器知道你要做什么,通过优化器知道怎么做,进入执行器阶段,开始执行语句
执行步骤
1.权限验证-对该表是否有查询修改删除权限
2.调用存储引擎执行
边栏推荐
- 指针与指针的指针
- replacement has 2 rows, data has 0, 解决R语言如何动态生成dataframe
- golang并发编程之select
- [nvme2.0b 9] controller initialization process
- 华硕重装系统键盘灯失效 =>重装ATK驱动
- 3000 yuan projector comparison and evaluation, dangbei D3x beats Jimi new Z6 x
- (问题解决) 缺少gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
- 美容院怎样做活动
- Selenium entry level project - Doudou quiz
- Scheduling function: Splunk operator Controller Manager
猜你喜欢

How did we solve the realsense color bias problem?

MySQL index creation, optimization analysis and index optimization

PHP uses composer

ASUS reinstallation system keyboard lamp failure = & gt; Refitting the ATK drive

mysql-索引创建、优化分析、索引优化

3de 保存到收藏夹

微信小程序聊天 表情

工厂模式

Vs loading symbols causes program to start slowly

分析Iceberg合并任务解决数据冲突
随机推荐
关于在dialog中调用edittext这个件事
rabbmitMQ 简单模式<一>
php使用composer
微信小程序聊天 表情
3000元投影仪对比评测,当贝D3X完胜极米NEW Z6 X
Fastdfs-5.0.5 installation
1690. stone game vii- dynamic programming method
Splunk: Auto load Balanced TCP Output issue
mysql 查询表的字段的属性、注释、字段信息
Decorator II property - short answer logic
Rabbmitmq simple mode < 1 >
聊聊flink水位线
AtCoder Beginner Contest 252(dijkstra,逆向思维)
VIM from dislike to dependence (18) -- advanced search mode
Analyzing iceberg merge tasks to resolve data conflicts
[nvme2.0b 10] controller shutdown and NVM subsystem shutdown
[nvme2.0b 6] nvme queue model
力扣:用两个栈实现一个队列
3de 机器人吸盘抓box
指定它为网关,它就成为网关了么