MySQL逻辑架构

1.        逻辑结构

1) 结构图如下

2) 连接/线程处理:大多基于网络客户端/服务器的工具或服务都有类似的.主要用作连接处理,授权认证,安全等

3) 第二层:大多MySQL核心服务在此层,包括:查询解析,分析,优化,缓存,内置函数(日期,时间,数学,加密函数),跨存储引擎的功能(存储过程,触发器,视图等)

4) 第三层包含了存储引擎:

a          存储引擎负责数据的存储和提取

b          服务器通过API与存储引擎通信

c          存储引擎API包含几十个底层函数,如开启一个事务,根据主键提取一行记录等

d          存储引擎不会解析SQL(InnoDB例外,它会解析外键,MySQL服务器本身没有实现该功能)

e          不同存储引擎间不会相互通信,只简单响应上层服务器请求

2.        连接管理与安全性

1)       每个客户端连接都会在服务器进程有一个线程,这个连接的查询只会在单独的线程中执行,该线程只能轮流在某个CPU核心或CPU中运行

2)       MySQL5.5开始支持线程池插件,因此服务器会负责线程缓存,也不需要为每个新建连接创建和销户线程

3)       客户端连接服务器是需要认证

a          基于用户名,密码,原始主机信息认证

b          如使用安全套接字(SSL)方式连接,可以使用X.509证书认证

c          认证成功后会根据相应用户权限执行允许的功能

3.        优化与执行

1)       优化包含重写查询,决定表读取顺序,选择合适索引等

a          用户可以通过关键字提示(hint)优化器,影响它的决策过程

b          可以请求优化器解释(explain)优化过程的各个因素,以此作为参考来重构查询和Schema,修改配置

c          优化器不关心使用什么存储引擎,但存储引擎对优化查询是有影响的.优化器会请求存储引擎提供容量或某个操作的开销信息,表数据统计信息等

Select语句,会先查询缓存,若有对应查询就不再进行解析,优化,执行的整个过程,直接返回查询缓存里的结果集    
posted @ 2019-08-29 22:52  爱上咖啡的唐  阅读(129)  评论(0编辑  收藏  举报