MySQL逻辑架构
1、mysql架构图

8297ddcb0c43911b88ca352c3e278dcc.png
①第一层是服务层(为客户端服务):为请求做连接处理、授权认证、安全等。
②第二层是核心层:查询解析、分析、优化、缓存,并且提供内建函数:存储过程,触发器,视图。
③第三层是存储引擎层:不光可以做存储和提取数据,而且针对特殊数据引擎还要做事务处理。
1.1、连接管理与安全性(服务层)
1.1.1、处理流程,如图所示:

c8a552f9a819c3383f94857b891b5303.png
1.1.1.1、每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行
1.1.1.2、服务器负责缓存线程,所以服务层并不需要为每个连接新建线程。
1.2、执行与优化

697ef002ee05fc393ea2c7ef5541452b.png
1.2.1、MySQL会解析查询,并创建内部数据库结构(解析数),然后对其进行优化,包括重写查询、决定标的读取顺序,以及选择合适的索引。
1.2.2、在解析查询之前,服务器会“询问”是否进行了查询缓存(只能缓存SELECT语句和相应结果)。缓存过的直接返回结果,未缓存的就需要进行解析查询、优化、重新执行返回结果。
1.2.3、解析查询时会创建一个内部数据结构(树),然后对其进行各种的优化。
1.2.4、优化,就是重写查询,决定查询的读表顺序,选择需使用的索引。
共有 0 条评论