MySQL逻辑架构
程序员文章站
2024-03-17 20:26:10
...
MySQL逻辑架构
1. 最上层的服务不是MySQL独有,大多数基于网络的的客户端/服务器的工具或者服务都有类似的架构。比如:连接处理、授权认证、安全等等。
2. 大多数MySQL核心服务功能都在第二层架构中,包括查询解析、分析、优化、缓存、所有的内置函数,以及所有跨存储引擎的功能如:存储过程、触发器、视图等。
3. 第三层包含了存储引擎(负责MySQL中数据的存储和提取),服务器通过API与存储引擎进行通信,这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。
1.1连接管理与安全性
-
每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者CPU中运行。服务器会负责缓存线程,因此不需要为每一个新建的连接创建或销毁先线程1。
-
当客户端(应用)连接到MySQL服务器时,服务器需要对其基于原始主机信息和密码进行认证。如果使用了安全套接字(SSL)2进行连接,还可以使用X.509证书认证。当客户端连接成功,服务器会继续验证该客户端的权限信息。
1.2优化与执行
1. MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化。另外,存储引擎对于优化查询是有影响的。
2. 解析查询之前,服务器会先检查查询缓存(Query Cache)是否能找到对应的查询,存在就不再执行查询解析、优化和执行的整个过程,而是直接返回查询缓存中的结果集。
上一篇: MySQL逻辑架构简介