原理:基础

Mysql逻辑架构图

Mysql逻辑架构图主要分三层:

1) 第一层负责连接处理,授权认证,安全等等

每个客户端连接都会在服务器进程中拥有一个线程,服务器维护了一个线程池,因此不需要为每一个新建的连接创建或者销毁线程。

当客户端连接到Mysql服务器时,服务器对其进行认证,通过用户名和密码认证,也可以通过SSL证书进行认证。

一旦客户端连接成功,服务器会继续验证客户端是否具有执行某个特定查询的权限。

2)第二层负责编译并优化SQL

这一层包括查询解析,分析,优化,缓存以及所有的的内置函数。

对于SELECT语句,在解析查询前,服务器会先检查查询缓存,如果能在其中找到对应的查询结果,则无需再进行查询解析、优化等过程,直接返回查询结果。

所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。

3)第三层是存储引擎。

存储引擎负责在MySQL中存储数据、提取数据。

存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。

存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应上层服务器的请求。

 

 

参考文章:

后端程序员必备:Mysql数据库相关流程图/原理图

一条 sql 的执行过程详解

面试官:说说一条查询sql的执行流程和底层原理?

自己动手写SQL执行引擎

数据库如何解析执行SQL

步步深入:MySQL架构总览->查询执行流程->SQL解析顺序

一次神奇的sql查询经历

打开黑盒:从 MySQL 架构设计出发,看它是如何执行一条 SQL 语句的?

 

posted @ 2021-06-01 19:31  弱水三千12138  阅读(46)  评论(0编辑  收藏  举报