MySql架构

一、我们来看一个结构大致图形

二、MySql逻辑架构-连接层

 

当Mysql启动时候(Mysql服务器就是一个进程),等待客户端连接,每一个客户端连接请求,服务器就创建一个线程来处理,

(如果是线程池的话,则是分配一个空的线程),每个线程独立,拥有各自的内存空间,但是,如果这个请求只是查询的话,没关系,;

但是若是修改数据,很显然,当两个线程修改同一块数据的时候,会引发数据同步问题;

三、MySql逻辑架构-SQL处理层 

 

四、MySql逻辑架构-SQL处理层

 

1. 主要功能:

SQL语句的解析、优化、缓存查询、Mysql内置函数的实现,跨存储引擎功能(所谓跨存储引擎就是说每个引擎都是需要提供的功能(引擎需要对外提供接口)),例如:存储过程、触发器、试图等;

2. 实现步骤:

2.1 如果是查询语句(select语句)

首先会查询缓存是否已经有相应的结果,有则返回结果,无则进行下一步

2.2 解析查询:

创建一个内部数据结构(解析树),这个解析树主要用来SQL语句与语法的解析;

2.3 优化:

优化SQL语句,例如重写查询,决定表的读取书序,以及选择需要的索引等。这一个阶段用户是可以查询的,查询服务器优化器是如何进行优化的,便于用户重构查询和修改相关配置,达到最优化。这一阶段还涉及到存储引擎,优化器会询问存储引擎,比如某个操作的开销信息、是否对特定索引有查询优化等;

原文地址:https://www.cnblogs.com/lys-lyy/p/11156089.html