《MYSQL实战45讲》 学习笔记 4月Day9

46 阅读1分钟

01 | 基础架构:一条SQL查询语句是如何执行的?

image.png 大体来说,MySQL 可以分为 Server 层存储引擎层两部分。 Server 层包括连接器查询缓存分析器优化器执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 而存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDBMyISAMMemory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开始成为了默认存储引擎。

连接器

第一步,你会先连接到这个数据库上,这时候接待你的就是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。

mysql -h$ip -P$port -u$user -p

连接数据库后默认是长连接

分析器

分析器先会做“词法分析”,识别出关键字select等,再判断语法是否有误

优化器

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序

执行器

判断权限,按存储引擎进行查询