简略MySQL架构

62 阅读1分钟

架构

我们可以通过一条 SQL 的执行过程来介绍 MySQL 的基础架构

经典的一张图:

image.png

大体上,MySQL 分为 Server 层和存储引擎层两部分。

Server 层包括连接器、查询缓存、分析器、执行器等,以及所有的内置函数(如日期、时间、数学和加密函数等)和跨存储引擎的功能(如存储过程、触发器、视图)。

存储引擎层负责数据的存储和提取,支持 InnoDB、MyISAM、Memory 等多个存储引擎。MySQL 5.5.5 版本后默认存储存储引擎是 InnoDB。

连接器

连接器顾名思义就是负责跟客户端建立连接,并且来管理连接的

无多余操作---->连接空闲,超时断开,默认为8h

连接分为长连接、短连接

  • 数据库里面,长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接。
  • 短连接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个。

短连接频繁建立比较消耗资源,而许多长连接存在会占用大量资源,可以考虑定期断开长连接

查询缓存

执行过的语句及其结果会以 key-value 对的形式保存在一定的内存区域中

很长时间才更新的表适合查询缓存,MySQL 8.0 版本将查询缓存的功能删除了

分析器、优化器、执行器

功能分别是:

  1. 对Sql语句进行词法分析、语法分析
  2. 决定使用哪一个索引,以及join的连接顺序
  3. 权限验证,调用引擎提供的接口