mysql架构


下图更加易懂。
## 连接管理与安全性
当客户端连接到sql服务器时,服务器需要对其进行认证。认证基于用户名、原始主机的信息和密码。如果使用了安全套接字(SSL)的方式连接,还可以使用证书认证。一旦客户端连接成功,服务器会继续验证该客户端是否具有执行某个特定查询的权限
## 优化与执行
mysql会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询\决定表的读取顺序,以及选择合适的索引等。用户通过特殊关键字提示(hint)优化器,影响他的决策过程。也可以请求优化器解释优化过程的各个因素。便于用户重构查询和schema、修改相关配置,使应用尽可能高效。
优化器并不关心使用的是什么存储引擎,但存储引擎对于优化查询是有影响的。优化器会请求存储引擎提供容量或某个具体操作的开销信息,以及表数据的统计信息等。
对于select语句,在解析查询之前,服务器会先检查查询缓存(query cache),如果能在起中找到对应的查询,服务器就不必再执行查询解析、优化和执行的整个过程,而是直接返回查询缓存中的结果集。