mysql学习笔记一:mysql执行流程

mysql分为 Server 层和存储引擎层两部分

1.Server 层:包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

2.存储引擎层:负责数据的存储和提取。支持 InnoDB、MyISAM、Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。


image.png

连接器

负责客户端的连接,连接后会查询权限表获取权限信息

1.长连接:连接成功后,如果客户端持续有请求,则一直使用同一个连接(尽量使用)

2.短连接:指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个

查询缓存

通过 key-value 的形式缓存查询结果,每次查询先判断缓存是否存在,有则直接发送给客户端

建议你不要使用查询缓存:表的更新,这个表上所有的查询缓存都会被清空

分析器

解析sql语句,判断是否满足 MySQL 语法

优化器

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。优化器阶段完成后,这个语句的执行方案就确定下来了,然后进入执行器阶段。

执行器

打开表执根据表的引擎定义,去使用这个引擎提供的接口

你可能感兴趣的:(mysql学习笔记一:mysql执行流程)