MySQL体系架构简介
本篇文章主要介绍MySQL体系架构中的组件,包括连接池、管理工具、SQL接口、解释器、优化器、缓存、存储引擎和文件系统,学习MySQL,首先需要连接体系架构,对MySQL有一个整体的认识,下面开始对其组件的介绍。
MySQL体系结构如下图所示
从上到下可以看到MySQL由连接池、管理工具、SQL接口、解释器、优化器、缓存、存储引擎、文件系统组成。
连接池
由于每次建立连接都需要创建一个线程,连接的创建和销毁需要花费很多时间,通过连接池来把连接缓存下来,用来减少连接创建和销毁的消耗,提升服务器性能。
管理工具和服务
MySQL提供了很多的管理工具,包括备份和恢复、MySQL复制、集群等。
SQL接口
SQL接口的主要作用时接受SQL命令,并返回响应的接口,SQL语句的执行首先会经过SQL接口,之后经过优化器优化,经过缓存(8.0以移除),最后经过存储引擎读取/操作文件系统来处理一次SQL操作。
解释器
一条sql命令会传递到解析器时会经过解析器的解析和验证,解释器的主要功能有两个
- 把sql命令解释成一个数据结构,把这个解析后的数据结构传递给后面的组件处理,后面的组件基于这个数据结构进行处理。
- 在解析sql命令的过程中,如果存在异常,说明这个sql语句是错误的,简而言之,解析器会验证sql的正确性。
优化器
查询优化器,SQL语句在查询之前会经过优化器对查询进行优化,比如索引选择等,这个后期文章详细解释。
缓存器
查询缓存,如果查询缓存命中的话查询语句可以直接从缓存获取结果,缓存由一系列的小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。
存储引擎和文件系统后续会有单独的文章解读,包括缓存器8.0版本后不再使用,后面也会一并解读。