1.1. 逻辑架构
mysql架构
- 第一层:连接处理、授权认证、安全等。
- 第二层:包含Mysql大多数核心功能,包括查询解析、分析、优化、缓存以及所有的内置函数
- 第三层:存储引擎,负责MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信,这些API屏蔽了不同存储引擎之间的差异,对上层的查询过程同名,存储引擎不会解析SQL,相互之间不会通信。
1.1.1连接管理、安全性
连接管理:每个Client连接在服务器中均拥有一个线程,查询只会在对应线程中执行。服务器会缓存线程,所以不需要为每个新建的连接创建或销毁线程。
安全性:Client连接Mysql时,服务器对其进行认证,基于用户名、原始主机信息、密码。如果使用SSL进行连接,还可以使用X.509证书认证。连接成功后检查查询权限。
1.1.2优化与执行
优化:Mysql解析查询,创建解析树,对其进行优化。比如重写查询、表的读取顺序、选择合适的索引。sql可以通过关键字来影响优化过程,也可以使用explain解释优化过程因素。存储引擎对优化查询有影响。
执行:对于SELECT,在解析之前,MySQL会先检查查询缓存,如果有对应的查询,服务器不再解析,直接返回缓存。