MYSQL学习笔记 | 青训营笔记

84 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

本堂课重点内容

1.概述
2.SQL语句的历程:产生、执行和返回

详细知识点介绍

概述

MYSQL的架构,分为四层,分别是网络连接层、系统服务层、存储引擎层和文件系统层。其中第一层,网络连接层负责与客户端进行连接,当客户端申请连接MYSQL时,MYSQL会分配一个线程来处理所有之后的工作,连接是基于TCP协议的。位于第一层的数据库连接池管理了因为每个客户端连接而分配的线程。第二层服务系统层有SQL接口、解析器、优化器和缓存及缓冲等概念,他们用来接收、处理、优化和缓存SQL语句。第三层存储引擎层是MySQL最重要的一层,在前面的服务层中,聚集了MySQL所有的核心逻辑操作,而引擎层则负责具体的数据操作以及执行工作。第四层文件系统层本质上就是基于机器物理磁盘的一个文件系统,他的作用是将数据落盘,负责数据的最终存储和持久化工作。

SQL语句的历程:产生、执行和返回

产生

首先是产生,SQL主要由开发者自己编写或者相关的ORM框架自动生成。

执行之前的准备

其次是执行SQL前做的准备。客户端应用会获取一个数据库连接池MySQL连接池维护的是工作线程,客户端连接池则维护的是网络连接如果此时连接池中有空闲连接,可以直接拿到复用,但如果没有,则要先判断一下当前池中的连接数是否已达到最大连接数,如果连接数已经满了,当前线程则需要等待其他线程释放连接对象,没满则可以直接再创建一个新的数据库连接使用,此时就会经历TCP三次握手过程进行连接,MYSQL则会在线程池中分配线程给这个客户端连接。(这个连接池区别于MYSQL连接层维护的连接池,前者维护了之前建立的数据库网络连接,也就代表着之后需要进行数据库操作时,不需要自己去建立连接了,而是直接从「数据库连接池」中获取,用完之后再归还给连接池,以此达到复用的效果。后者则维护了MYSQL数据库创建的的线程,以便达到线程的复用目的。一句话来说就是MySQL连接池维护的是工作线程,客户端连接池则维护的是网络连接)此时就已经打通了执行SQL的通道。

image.png

image.png

执行

再其次是SQL的执行。
查询SQL的执行流程:

image.png 写入SQL执行流程:

image.png

返回

最后是执行结果的返回。

总结

在本次课程中,主要学习到了SQL架构的相关知识。