01.20 Day 1 - MySQL 基础架构

大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 1 天,也是我第 37 次进行打卡这种操作。

今天我温习了该专栏里一篇叫《基础架构:一条SQL查询语句是如何执行的?》的文章。

关键词总结:Server 层(连接器、查询缓存、分析器、优化器、执行器、内置函数(日期、时间、数学、加密函数)、跨存储引擎功能(存储过程、触发器、视图))、存储引擎层(存储、提取、InnoDB)。

所学总结:

Server 层

连接器

负责与客户端建立连接、获取权限、维持以及管理连接。
通过 mysql 客户端根据连接的过程:

  • 如果用户名/密码不正确,客户端将收到错误信息 “Access denied for user” 并退出;
  • 如果用户名/密码正确,连接器会通过权限表来关联用户的权限,并只让用户进行他权限范围内的操作。

对连接中的用户进行权限的变更不会使其立即生效,需要用户重新连接后才会生效。

查询缓存

查询缓存的失效非常频繁,只要表被更新,表上面所有的查询缓存都会被清空。不经常更改的表才适合使用查询缓存,例如系统配置表。MySQL 8.0 之后没有查询缓存这个模块了。

分析器

分析器会先做 “词法分析”。用户输入的是由多个字符串以及空格组成的一条 SQL 语句,MySQL 需要识别出里面的字符串分别是什么,代表什么。

优化器

优化器是当表有多个索引时,决定使用哪个索引;或在多表关联语句时,决定表的连接顺序。

执行器

开始执行的时候,片段用户对操作表是否有对应操作类型的权限,没有则返回权限错误消息。如果有权限则打开表,执行器根据表的引擎使用相关引擎所提供的接口。

末了

重新总结了一下文中提到的内容:MySQL 逻辑架构、SQL 语句完整执行流程。

发布了77 篇原创文章 · 获赞 6 · 访问量 1625

猜你喜欢

转载自blog.csdn.net/stevenchen1989/article/details/104047308
今日推荐