MySQL 架构体系

一、组成部分

由SQL接口,解析器,优化器,缓存,存储引擎等组成的


二、架构体系图

image

2-1、技术讲解

  1. Connectors:指的是不同语言中与SQL的交互。

  2. Management Serveices & Utilities:系统管理和控制工具。

  3. Connection Pool: 连接池,管理缓冲用户连接,线程处理等需要缓存的需求。

  4. SQL Interface: SQL接口,接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface。

  5. Parser 解析器:SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。主要功能:

    • 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。
    • 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的。
  6. Optimizer 查询优化器:SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询

  7. Cache和Buffer 查询缓存:如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。

  8. Engine 存储引擎:存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方

2-2、工作原理

  1. 首先通过程序发送一个sql请求通过connectiors进行交互
  2. 收到请求后,会暂时放在connection pool连接池中并由处理器management管理
  3. 当该请求从等候队列进入到处理队列
  4. 管理器会将请求扔给sql接口
  5. sql接口接受到请求后,它会将请求进行hash处理并与缓存中的结果进行对比,如果匹配到就通过缓存直接返回结果,否则这趟流程需要重新开始
posted @ 2021-05-08 00:07  q-linyu  阅读(54)  评论(0)    收藏  举报